我注意到<script src="..."></script>标签不允许您在其中使用JavaScript,例如:
<script src="myFile.js">
alert( "This is a test" );
</script>
Run Code Online (Sandbox Code Playgroud)
这不起作用,也不会在FireBug中引发错误,为什么会发生这种情况,为什么我们必须添加额外的<script>标签以允许在表单上使用JS?
例
我有一个文件,script/addScript.js从我的root中找到@ ,其中包含:
function addScript( $src )
{
var script = document.createElement( 'script' );
script.type = "text/javascript";
script.src = $src;
document.getElementsByTagName( 'head' )[0].appendChild( script );
}
Run Code Online (Sandbox Code Playgroud)
这是为了让我能够快速有效地向DOM添加脚本,所以我尝试这样做:
<script src="script/addScript.js">
addScript( "script/obj.js" );
addScript( "script/home/login.js" );
</script>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,所以我必须这样做:
<script>
addScript( "script/obj.js" );
addScript( "script/home/login.js" );
</script>
Run Code Online (Sandbox Code Playgroud)
脚本元素加载单个脚本.
它可以做到这一点,无论是从URL或内联,但它仍然加载一个脚本,所以它不能两者都做.
如果您尝试同时执行这两项操作,则将忽略内联脚本:
<script src="example.js">
this_is_ignored();
</script>
Run Code Online (Sandbox Code Playgroud)
...所以你需要多个脚本元素.
<script src="example.js">
</script>
<script>
this_is_NOT_ignored();
</script>
Run Code Online (Sandbox Code Playgroud)
值得注意的是,脚本元素的内容仍然存在于DOM中,因此有些人使用它来存储src中的数据,而src所引用的JS将会读取该数据.data-*虽然属性(可以说)是一种更清洁的方法.
| 归档时间: |
|
| 查看次数: |
1114 次 |
| 最近记录: |