我有一个相当大的 HTML/JS/CSS 应用程序,在 iPhone 上使用 Safari 作为 Web 应用程序运行时效果非常好。
当在本机 iPhone 应用程序中的 UIWebView 中运行相同的应用程序时,在 jQuery 中调用创建 HTML 片段会失败(即:$("<div>HELLO WORLD</div>");
不会创建该元素。
我已经在干净的 jQuery 方法中找到了以下等效代码片段:
var div = document.createElement(“div”);
div.innerHTML = “<div>HELLO WORLD</div>”
;
当我看着div.outerHTML
I see
<div>/<div>
div.innerHTML
返回一个空字符串。
这似乎不是 jQuery 问题,也不是 100% 都会发生。我没能找到一个模式,但在某些情况下它连续工作 2-3 次,有时连续失败 5-6 次。这似乎仅在 Objective-C 应用程序中的 UIWebView 内运行应用程序时才会出现。另外,我只在运行 iOS 4.2 的实际设备上看到过这一点,而不是在模拟器上。
有人遇到过类似的事情吗?有人有解决办法吗?
我也有这个问题。当手机的 CPU 非常繁忙(比如 100%)时,就会发生这种情况。然后渲染引擎有时会忘记innerHTML设置。
我的解决方案包含在统一项目 http://www.unify-training.com就是测试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毫秒,在我们的测试中是一个很好的值)来处理它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)