次の方法で、ロードされたページにJavaScriptを追加しようとしています:
var sc = document.createElement('script');
sc.content = "<script>alert('aa')</script>";
document.body.appendChild (sc);
しかし、それはクロムでは機能しませんでした:
次の方法で、ロードされたページにJavaScriptを追加しようとしています:
var sc = document.createElement('script');
sc.content = "<script>alert('aa')</script>";
document.body.appendChild (sc);
しかし、それはクロムでは機能しませんでした:
要素のコンテンツの<script>...</script>
中には入れません。しかし、もっと重要なことは、彼らがプロパティを持っているとは思わない(たとえば、ここにはプロパティがない)。script
content
正しく思い出せば、script
実行時に要素内にコンテンツを配置する最も信頼できる方法は、を介しcreateTextNode
てappendChild
、たとえば次のようになります。ソース
var sc = document.createElement('script');
sc.appendChild(document.createTextNode("alert('aa')"));
document.body.appendChild(sc);
...しかし、古いブラウザの中には、代わりに設定する必要があるものがあることを知っても驚くことではありませんinnerText
。
var script = document.createElement('script');
script.appendChild(document.createTextNode("alert('http://jsfiddle.net/UpWhX/')"));
document.body.appendChild(script);
このテストを試すこちら http://jsfiddle.net/UpWhX/2/