2 huayife3g huayife3g 于 2013.11.25 16:24 提问

javascript中的一个小问题
function clickButton() { dynamicInsert("dynamic.js"); show(); }
    <input type="button" value="OK">

这个是html界面中的一个按钮,点击的时候动态载入一段脚本

/**
*动态的插入一个脚本
*/
function dynamicInsert(url)
{
alert("------");
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = url;
head.appendChild(script);
//alert("载入脚本成功");
}
这个是一个JS文件,提前导入到html页面中的

function show()
{
alert("111");
}
这个是想要动态载入的js文件

问题是:dynamicInsert()函数中最后不加 //alert("载入脚本成功");这行代码,不会输出想要的结果111;加上后就输出正常了,请问这是怎么回事

3个回答

fylsle
fylsle   2013.11.26 18:52
已采纳

不加 alert() html页面没任何变化,浏览器不会重新解析页面,show()可能未找到,没有执行,加了alert(),页面变化了,浏览器重新解析页面,能正确找到show()函数鸟

wangweipolp
wangweipolp   2013.11.25 17:13

function show()
{
alert('111');
}
是一个函数,加入html头部应该是不会自动执行的,除非是事件触发它执行,如果要让他一开始就执行,就不需要写在函数里面

huayife3g
huayife3g 这个跟我问的没关系啊,我是想弄明白为什么加了alert("载入脚本成功");这行代码会弹出111,不加不会弹出。粘贴过来的文本有错误,应该是:<input type="button" onclick="clickButton()" value="OK">
4 年多之前 回复
MYNAMESHIXUST
MYNAMESHIXUST   2013.11.29 16:19

肯定是你把执行顺序搞错了,或者你载入的脚本报错了。
F12打开调试台, 打个断点问题就出来了。
情况一:执行show方法的时候,show还没有声明;
情况二:载入脚本的时候报错了,不向下执行了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!