在加载外部js文件的脚本标记内编码

时间:2016-05-26 11:08:39

标签: javascript html

我做了一个随机实验并尝试在脚本标记内写入,加载外部js文件并调用其中一个方法,但它没有工作。这是我的js文件

//external.js
var myObject = {
    myMethod: function(){
        document.getElementById('container').innerHTML = "Hello, Internet!"
    }
}

这是html:

<script type="text/javascript" src="external.js">
    myObject.myMethod();
</script>

所以我有两个问题。一个显然是为什么没有调用该方法?第二个是为什么我的控制台没有错误?例如:myObject.myMethod不是函数

3 个答案:

答案 0 :(得分:1)

通过src属性引用文件的<script src="–">元素内的代码无法执行。这在Restrictions for contents of script elements中有解释,但没有浏览器“强制执行”“必须是评论内容”的事情。

Identifying the current <script> element解释了如何使用此行为来参数化脚本执行。

答案 1 :(得分:0)

看看https://www.w3.org/TR/html4/interact/scripts.html#h-18.2.1

  

脚本可以在SCRIPT元素的内容中定义   在外部文件中。如果未设置src属性,则必须使用用户代理   将元素的内容解释为脚本。如果src有一个   URI值,用户代理必须忽略元素的内容并检索   脚本通过URI。请注意,charset属性指的是   src属性指定的脚本的字符编码;它   不涉及SCRIPT元素的内容。

答案 2 :(得分:0)

将函数调用放在外部JavaScript文件中,如下所示:

var myObject = {
    myMethod: function(){
        document.getElementById('container').innerHTML = "Hello, Internet!"
    }
}

myObject.myMethod();