2

私は私を怒らせているこのコードを持っています。

parent.document.write("<script type='application/javascript' scr='http://backlinker.nl/ip.php?callback=getip'><\/script>");

これは機能し、html ドキュメントの head セクションに追加されます。

<script type='application/javascript' scr='http://backlinker.nl/ip.php?callback=getip'></script>

しかし、それは実行されません。違いは、parent.document.write を使用せずに HTML ドキュメントの先頭に直接貼り付けると、機能し、実行されることです。

    <script type='application/javascript' scr='http://backlinker.nl/ip.php?callback=getip'></script>

firebug html ソースコードで出力を提供します。

<script src="http://backlinker.nl/ip.php?callback=getip" type="application/javascript">
getip({"ip": "195.241.100.221"});
</script>

parent.document.write 関数を介してロードされた場合、IP 出力はありません:

<script src="http://backlinker.nl/ip.php?callback=getip" type="application/javascript">
</script>

なぜparent.document.write関数が機能しているのか(コードをhead htmlセクションに入れる)、IPをロードしない理由は誰でも知っていますか?

さて、機能している代替手段がありますが、私を怒らせる質問にはまだ答えていません。なぜ私のものは機能していないのですか?!

回避策 =

var scriptElement = document.createElement("script");
scriptElement.src = 'http://backlinker.nl/ip.php?callback=getip';
scriptElement.type = "text/javascript"; //specify type so that the browser won't ignore it
var head = document.getElementsByTagName("head")[0] || document.documentElement;

head.appendChild(scriptElement);

4

2 に答える 2

1

スクリプト要素を作成したい場合は、それを読み込んで実行してください - 代わりに document.createElement を試してください:

var scriptElement = document.createElement("script");
scriptElement.src = 'http://backlinker.nl/ip.php?callback=getip';
document.body.appendChild(scriptElement);
于 2013-08-17T01:48:53.650 に答える