我正在使用以下代码
view.loadUrl("javascript:var con = document.getElementsByTagName('img'); for (var i = 0; i < con.length; ++i)con[i].style.maxWidth='100%'; ");
如果我的目标是API 18,它可以正常运行,但是如果我定位最新版本的Android,API 19,它会清除我尝试加载的整个网站,并将其替换为“100%”的文本。 Kit Kat为什么要这样做?
答案 0 :(得分:1)
WebViews在KitKat中处理javascript的方式发生了重大变化。您不应再通过loadUrl()方法加载javascript。而是使用新的evaluateJavascript()
方法:
view.evaluateJavascript(
"var con = document.getElementsByTagName('img'); " +
"for (var i = 0; i < con.length; ++i)con[i].style.maxWidth='100%';",
null);
答案 1 :(得分:0)
我以前的建议不正确;所以清除它以免误导,并在其中添加一些额外的相关讨论,这可能实际上有助于未来的人: - )
Krylez是正确的 - 使用evaluateJavaScript
API来避免此问题。但是,如果您将目标SDK设置为&lt;将自动修复此问题。 19并继续使用遗留loadUrl
方法和javascript:
网址。一旦你开始瞄准19或以上,你应该切换到evaluateJavaScript
。