0

Android WebView に読み込まれた Web ページに CSS を動的に挿入しようとしています。

問題をこの 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 は script タグの 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 に答える