javascript – 在本机iPhone应用程序中的UIWebView内部是否存在使用InnerHTML的错误?

我有一个相当大的 HTML / JS / CSS应用程序,在iPhone上作为一个Web应用程序运行Safari时,效果很好.

当在本机IPhone应用程序中的UIWebView中运行相同的应用程序时,jQuery内的调用以创建HTML片段认地失败(即:$(“< div> HELLO WORLD< / div>”))不会创建元素.

我已经跟踪到以下等效的代码片段,在干净的jQuery方法中:

var div = document.createElement(“div”);
div.innerHTML =“< div> HELLO WORLD< / div>”;

当我看到div.outerHTML我看到
< DIV> /< DIV>

div.innerHTML返回一个空字符串.

这似乎不是一个jQuery问题,100%的时间也不会发生.我找不到一个模式,但在某些情况下,它连续工作2-3次,有时连续5-6次失败.这似乎只在Objective-C应用程序中的UIWebView内运行应用程序时显示.此外,我只在运行iOS 4.2的实际设备上看到,而不是模拟器.

有没有人碰到任何类似的东西?有谁有修复?

解决方法

我也有这个问题.当手机的cpu很忙(说100%)时就会发生这种情况.然后渲染引擎有时会忘记innerHTML设置.

我的unify project中包含的解决方案是测试childNodes中是否有元素,否则再次应用.

var target = document.createElement("div");
var text = "<div>Hello World</div>";
target.innerHTML = text;
var self = this;
self.__intervalHandle = window.setInterval(function() {
  target.innerHTML = text:
  if (target.firstChild) {
    window.clearInterval(self.__intervalHandle);
    self.__intervalHandle = null;
  }
},100);

这迫使渲染引擎将innerHTML应用于DOM,并给予渲染引擎一些时间(在本例中为100 ms,在我们的测试中是一个很好的值)来处理它.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...