如何在运行时将javascript代码加载到html文件?

如何在运行时将javascript代码加载到html文件?,javascript,Javascript,我想问一下,是否可以在运行时将javascript代码加载到html文件中。例如,放置一个文本框以输入脚本文件的位置,放置一个表单按钮以触发加载脚本文件 提前感谢您。是的,这样做很简单: //on button click event: $.getScript(urlOfScript); 或者,仅使用本机javascript方法: //on button click event: var head = document.getElementsByTagName('head')[0]; var

我想问一下,是否可以在运行时将javascript代码加载到html文件中。例如,放置一个文本框以输入脚本文件的位置,放置一个表单按钮以触发加载脚本文件

提前感谢您。

是的,这样做很简单:

//on button click event:
$.getScript(urlOfScript);
或者,仅使用本机javascript方法:

//on button click event:
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'urlOfScript';
head.appendChild(script);

在该按钮的一次单击内粘贴此内容(更正第3行中的url):


该脚本将在第4行执行后立即开始下载,下载后将立即执行或可用。

以上所有正确答案。您还可以通过ajax将js作为任何其他html片段加载。 简短示例:

start.html

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
    <a href="#" onclick="$('#result').load('start.js'); return false;">start</a>
    <div id="result"></div>
</body>
</html>

您不需要jquery for ajax—我只是将其用作概念的快速证明。

这里还有一种jquery方法可以实现同样的效果

let src = 'http://www.example.com/dosome/afsddfa';
$('<script>').attr(
{
   src: src,
   type: 'text/javascript'
}).appendTo('body');
let src='1http://www.example.com/dosome/afsddfa';
$('').attr(
{
src:src,
键入:“text/javascript”
}).附于(“主体”);
它将创建一个脚本元素并将其附加到正文中


您还可以使用
.appendTo('head')

确保存在head元素。若并没有,那个么添加到body中也会起作用。顺便说一句,+1表示坚持使用纯JavaScript,因为问题没有用jQuery标记。如果我用这个方法添加两个脚本会怎么样?他们会在同一时间开始下载,还是第二个会等待第一个?这很有效。另一方面,如果您想在Java脚本中设置.innerHTML函数,而不是将'src'属性设置为指向文件,那么它将扩展HTML页面的长度,因此为了避免这种使用:“Script.setAttribute('hidden','true');”来消除HTML文档中增加的长度。
<script type="text/javascript">
    alert('Hello world!');
</script>
let src = 'http://www.example.com/dosome/afsddfa';
$('<script>').attr(
{
   src: src,
   type: 'text/javascript'
}).appendTo('body');