アプリ版:「スタンプのみでお礼する」機能のリリースについて

javascriptで<script>タグの表示をdocument.writeで行ったところ、
直後に、<script>ソースの関数呼び出しでリンク切れになったのですが、
なぜでしょうか。
document.writeの文字列が実行されるタイミングっていつなんでしょうか。

<script>
document.write('<script type="text/javascript" src="hoge.js"></script>');
hoge();
</script>
※hoge()はhoge.js内で定義されています。

A 回答 (2件)

やるならこう



<script>
document.write('<script type="text/javascript" src="hoge.js"></'+'script>');
</script>
<script>
hoge();
</script>
    • good
    • 0

<html>


<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>scripts</title>
<script>
document.open();
document.write('<script type="text/javascript" src="hoge.js">alert("hoge")<\/script>');
document.write('<script type="text/javascript">function hoge1(){ alert("+++hoge+++") }<\/script>');
document.close();

var s = document.scrits||document.getElementsByTagName("script");
alert(s.length);//オブジェクトは作られる(IE6:length=3,Firefox:length=2)
try{
hoge1();//IE6実行される,Firefox2実行されない。
}catch(e){
alert(e);//Firefox2はscripts[2]の内容は読み込んでいないようです。
}

try{
hoge();
}catch(e){
alert(e);//scripts[1]の内容は読み込んでいないようです。
}
</script>
<script>
alert(document.getElementsByTagName("head")[0].innerHTML);//****
hoge1();//scripts[2]の内容は読み込んでいるようです。
hoge();//scripts[1]の内容は読み込んでいるようです。
</script>
</head>
<body>
</body>
</html>
//****によるとdocument.writeが書かれたscriptの次にタグが書かれるようなのでその時に実行されると解釈しても良いじゃないでしょうか。
IE6のhoge1()の挙動が気になりますけど・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!