0

我正在尝试将一些 CSS 动态注入到加载到 Android WebView 中的网页中。

我已将问题提炼为这个 HTML,如果您将其插入到纯 HTML 页面的正文中,当您点击“点击我”时,会在 Android 2.2 页面上的元素中添加红色框,但在 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 上运行?或者如果它是一个模拟器唯一的错误?

谢谢

4

1 回答 1

1

我终于找到了解决方案,因此可以回答我自己的问题!

似乎 Android 2.1 不喜欢用于脚本标签的 innerHTML。更正确的方法是使用 document.createTextNode() 并在 2.1 和 2.2 中工作。

<a href="javascript:(function() { var style=document.createElement('style');style.type='text/css';css = document.createTextNode('* { border: 1px solid red; }');style.appendChild(css);document.getElementsByTagName('head').item(0).appendChild(style);})();">Click me to change all styles</a>
于 2011-05-12T11:41:04.730 回答