在脚本标记下编写内容

时间:2012-03-09 06:40:55

标签: javascript

我正在尝试使用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 个答案:

答案 0 :(得分:17)

你可以这样做:

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

在实践中,无论你是否设置了type属性都可能无关紧要,但它给人一种温暖的内在光芒。

答案 1 :(得分:3)

可以使用' 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>
&#13;
&#13;
&#13;