2012-03-09 3 views
1

javascriptを使用して私のページの下にスクリプトタグを動的に作成しようとしています。これまで私はそれを作成することができました。その型とsrcを設定することができます。今私の質問は、別のページにsrcを定義する代わりに、同じページにそのコンテンツを割り当てることができる方法はありますか?私はそれがより多くの意味を作る作るために私のコードを書いてみましょう:スクリプトタグの下にコンテンツを書く

var script = document.createElement("script"); 
script.type = "text/javascript"; 
script.src = 'custom.js'; 

は今、私はこのような何かを行うことによってだけでなく、それをコンテンツを割り当てることができますどのような方法があります:

script.content = 'document.write("stackoverflow")'; 
script.html = 'document.write("stackoverflow")'; 

私がいるかどうかわかりません彼らは存在しているかどうかはわかりませんが、私がこのようなことをすることができるかどうかだけを推測します。

+2

は、あなたが代わりにあなたがそれを達成するかもしれないと思うどのように達成しようとしているかを説明することはできますか?これまで動的スクリプトを書くことは意味がありません。また、ページロード後にdocument.writeを使用したくない場合は、 – mplungjan

+0

@mplungjanページ全体を消去することを知っています。私は何かをテストしているので、ストーリー全体を説明するとすべてが理解できませんそれ以外の場合はうまく動作し、私はちょうど動的な方法でスクリプトタグの下にコンテンツを割り当てることができる方法を探しています –

+0

'script.text'に割り当てることは、有効なプログラムでなければなりません。 – RobG

答えて

11

はあなたが行うことができます。実際には

var script_tag = document.createElement('script'); 
script_tag.type = 'text/javascript'; 
script_tag.text = 'alert("hello world")'; 
document.body.appendChild(script_tag); 

、あなたはtypeプロパティを設定するかどうかは、おそらく無関係ですが、それは1に暖かいインナー輝きを与えます。

+0

がうまく動きます。私はjqueryのコピーを含んでいますが、定義されていないと言っています:-( –

+1

jQueryを必要とするスクリプトを挿入する場合は、最初に読み込まれていることを確認する必要があります。 – RobG

2

スクリプトは 'scripts.text'を使って読み書きできます。それはスクリプトのデータオブジェクトモデル(DOM)の一部です。何らかの理由で、他のHTMLタグとは異なります。例: 'myScript.innerHTML'は機能しませんが、 'scripts.namedItem( "myScript")。text'は機能しません。

<p>Change scripts.text <a href="https://www.w3schools.com/jsref/prop_script_text.asp">https://www.w3schools.com/jsref/prop_script_text.asp</a> 
 
</p> 
 

 
<p>Script Object <a href="https://www.w3schools.com/jsref/dom_obj_script.asp">https://www.w3schools.com/jsref/dom_obj_script.asp</a> 
 
</p> 
 

 
<canvas id="Canvas1" style="border: 5px solid cyan"></canvas> 
 
<p id="Para1">...</p> 
 
<button onclick="ChangeScript()">Change Script</button> 
 
<button onclick="DrawIt()">Drawit</button> 
 
<button onclick="para1.innerHTML=script1.text;">Show Script</button> 
 

 

 
<script id="Script1"></script> 
 

 
<script> 
 
    function ChangeScript() { 
 
    script1.text = "function DrawIt(){canvas1.fillRect(1,2,30,40)}" 
 
    } 
 

 
    //Note: changing the script text more than once may not work. 
 

 
    canvas1 = document.getElementById("Canvas1").getContext("2d"); 
 
    script1 = document.scripts.namedItem("Script1"); 
 
    para1 = document.getElementById("Para1") 
 
</script> 
 

 

 

 
<a href="http://www.w3schools.com/code/tryit.asp?filename=FCR1ZI3MBN77">Try it Yourself, Change scripts.text</a>

+0

答えを説明してください –

関連する問題