我正在尝试动态地将一些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上运行?或者,如果它只是一个模拟器错误?
由于
答案 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>