用自身的副本替换元素innerHTML会改变文档高度吗?

时间:2016-01-07 19:47:44

标签: javascript html objective-c

我试图修复iOS应用中的错误。我已将其跟踪到我在webView中运行的一些Javascript。

当我执行以下操作时:

 var innerHTML = anElement.innerHTML;

//in the full code I do other things here
//but the issue remains even with nothing here

 anElement.innerHTML = innerHTML; 

偶尔上面代码片段开头和结尾的文档高度不一样;文档变得更小,只有几个像素。

有人可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

似乎可以通过添加CSS修复:

html {
    -webkit-text-size-adjust: none; /* Never autoresize text */
}

或在obj-c中将其应用于每个页面:

NSString* jsString =  @"var style = document.createElement(\"style\"); document.head.appendChild(style); style.innerHTML = \"html{-webkit-text-size-adjust: none;}\"";
[self.webView stringByEvaluatingJavaScriptFromString:jsString]

(这显然适用于UIWebView,我还需要编写一些代码以确保它不会被添加两次)