为什么我不能在<script src =“...”> CODE </script>之间放置JS代码?

时间:2014-11-02 00:51:34

标签: javascript

我尝试以下操作,但它似乎无法正常工作:

<script src="/script.js">
 alert(hello);
</script>

Script.js只包含var hello = "world"

你能否在<script src="...">CODE RIGHT HERE</script>之间放置代码?

如果我跳过src,它就有效:

<script src="/script.js">    </script>
<script>
 alert(hello);
</script>

2 个答案:

答案 0 :(得分:8)

您可以指定src属性或将代码包含为script标记的内容。正如你所发现的那样,你不能同时做到这两点。

以下是关于src属性Mozilla Developer Network has to say的内容(最后添加的重点):

  

此属性指定外部脚本的URI;这可以用作直接在文档中嵌入脚本的替代方法。指定了src属性的脚本元素不应在其标记中嵌入脚本。

你也可以在http://www.w3.org/TR/html5/scripting-1.html仔细阅读W3C建议书得出同样的结论,但我不认为它如此简明扼要。 (更正欢迎!也许我只是没有看到它。)你必须按照步骤准备一个脚本。

答案 1 :(得分:1)

从技术上讲,只有当您使用src属性引用的脚本使用以下内容评估内容时,才能完成此操作:

eval(document.currentScript.textContent);

但是我建议不要这样做,因为它违反了标准。