Android 2.1 模拟器中存在 Javascript 注入问题,但在 2.2 中则正常
我正在尝试将一些 CSS 动态注入到加载到 Android WebView 的网页中。
我已经将问题归结为这个 HTML,如果您插入纯 HTML 页面的正文,当您点击“Click me”时,在 Android 2.2 上,当您点击“Click me”时,会向页面上的元素添加红色框,但在 2.1 上失败(当在无论如何,模拟器)。
<a href="javascript:(function() { var style=document.createElement('style');style.type='text/css';style.innerHTML='* { border: 1px solid red; }';document.getElementsByTagName('head').item(0).appendChild(style);})();">Click me.</a>
知道是否有办法让这个 JS 在 Android 2.1 上工作?或者如果它只是模拟器的错误?
谢谢
I'm trying to dynamically inject some CSS into a webpage loaded into an Android WebView.
I've distilled the problem down to this HTML which if you insert into the body of a plain HTML page adds red boxes to the elements on the page on Android 2.2 when you tap "Click me" but fails on 2.1 (when run in the emulator anyway).
<a href="javascript:(function() { var style=document.createElement('style');style.type='text/css';style.innerHTML='* { border: 1px solid red; }';document.getElementsByTagName('head').item(0).appendChild(style);})();">Click me.</a>
Any idea if there is a way I can get this JS to work on Android 2.1? Or if it is an emulator only bug?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我终于找到了解决方案,因此可以回答我自己的问题!
看来 Android 2.1 不喜欢脚本标签的innerHTML。更正确的方法是使用 document.createTextNode() 并且适用于 2.1 和 2.2。
I've finally found a solution and so can answer my own question!
It seems Android 2.1 doesn't like innerHTML for script tags. The more correct way to do this is to use document.createTextNode() and works in both 2.1 and 2.2.