我正在尝试使用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")';
我不确定它们是否存在,只是猜测我是否可以做这样的事情。
答案 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;