我在test.html中有这个:
<script>
function h(){
g();
}
<script>
k.js:
g();
在test.html中,我成功输入了h()
,但未成功输入g()
。我添加了k.js作为脚本标记:
scriptTag.src="k.js"
找不到g()
就是一样。
我做错了什么?
答案 0 :(得分:2)
你说k.js
有这个:
g();
这不是一个有效的函数来调用,它只是试图调用仍未定义的g();
。
k.js
应具备的内容是这样的:
function g() { alert('you called g()'); }
答案 1 :(得分:1)
听起来您正在尝试在文档加载时或事件触发时添加脚本。如果您尝试在包含它的外部文件添加到dom后立即调用函数,则会出现错误。外部文件将不会被下载。在这个过程中有潜在的。计算机循环通过客户端脚本比下载.js文件更快。设置超时,您应该看到它正常工作。我错了,但那是我的......
答案 2 :(得分:0)
您是否确保在调用h()之前加载了k.js?
是否成功找到k.js并且路径正确解析?
答案 3 :(得分:0)
确保您调用的函数在DOM中的位置高于调用它的行。
答案 4 :(得分:0)
我添加了k.js作为脚本标签[scriptTag.src =“k.js”]
听起来你是在动态编写脚本标签吗?如果是这样,请确保将其注入DOM,然后在尝试从中访问任何内容之前等待浏览器加载它。只是创建脚本节点,在将其注入某处之前不会做任何事情。
答案 5 :(得分:0)
你的代码看起来像这样吗?
var scriptTag = document.createElement('script');
scriptTag.src = 'k.js';
真的,你应该有这条线:
scriptTag.type = 'text/javascript';
如前所述,必须将脚本插入DOM。这两行应解决问题:
var head = document.getElementsByTagName('head')[0];
head.appendChild(scriptTag);
导致:
var scriptTag = document.createElement('script');
scriptTag.src = 'k.js';
scriptTag.type = 'text/javascript';
var head = document.getElementsByTagName('head')[0];
head.appendChild(scriptTag);
现在你为什么不用这个?
<script type="text/javascript" src="k.js" />