Android 2.1模拟器中的Javascript注入问题但在2.2中很好

时间:2011-05-11 19:12:03

标签: javascript android webview android-2.2-froyo android-2.1-eclair

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

我已经将问题提炼到这个HTML了,如果你插入普通HTML页面的主体,当你点击“点击我”但是在2.1上失败时,会在Android 2.2页面上的元素中添加红色框。无论如何都要在模拟器中运行。)

<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上运行?或者,如果它只是一个模拟器错误?

由于

1 个答案:

答案 0 :(得分: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>