锁定老帖子 主题:js 函数的定义、运行 顺序。
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-15
niuyuewanzi 写道 应该明白你的意思...如果有多个<SCRIPT>标签,也应该是从上到下按顺序EXECUTE的. 就是说上面的<SCRIPT>里有个FUNCTION,下面的<SCRIPT>就可以继续用上面声明过的FUNCTION,反过来是不行的. 因为他们不在同一个<SCRIPT></SCRIPT>里. 当然也有例外,<SCRIPT DEFER>..</SCRIPT>有DEFER属性出现后,就等于告诉JAVASCRIPT,该<SCIRPT>要在整个DOCUMENT被处理完后在被执行,DEFER只在IE中有用...
使用 DEFER属性 相当于就是 把这个test.js文件 在 callBack之前 load |
|
返回顶楼 | |
发表时间:2007-11-15
afcn0 写道 楼上也是高人,发帖前最好仔细看看帖,要不会造成资源浪费,我在第一个回帖就解决了lz问题,可惜lz不领情,坚信自己语法的正确,无奈,无奈,无奈,无奈
我想知道的 是 有没有 某中方法,可以定义callback 方法,不受位置的限制。 第1帖,好像没有解决问题吧。 现在应该说是在 两个 <script>见的 函数变量的定义,是受到限制。即一个块里面要想调用 另一个块的函数,那么 被调用者应该在调用者之前就被定义。 |
|
返回顶楼 | |
发表时间:2007-11-15
好,给你个建议,看看这样能执行吗
<HTML> <HEAD> <script type="text/javascript" src="test.js"></script> <SCRIPT LANGUAGE="JavaScript"> function callBack(){ alert('run callback!'); } </SCRIPT> </HEAD> <BODY> <button onclick="test(callBack);">click me</button> </BODY> </HTML> |
|
返回顶楼 | |
发表时间:2007-11-15
afcn0 写道 好,给你个建议,看看这样能执行吗
可以了。非常感谢老大的指点。<HTML> <HEAD> <script type="text/javascript" src="test.js"></script> <SCRIPT LANGUAGE="JavaScript"> function callBack(){ alert('run callback!'); } </SCRIPT> </HEAD> <BODY> <button onclick="test(callBack);">click me</button> </BODY> </HTML> 为什么 <script/>这样子也可以导入相应的文件,但是却会发生 未定义的错误。 底层的原理是什么。 |
|
返回顶楼 | |
发表时间:2007-11-16
还真是不开窍。
不是所有浏览器都允许<script/>的写法。所以你应该写成<script></script>。 <script src="xxx"/> <script>...</script> 在IE和FF中会被解释为 <script src="xxx"> <script> ... </script> 它们的解析规则是,script标签开始就是CDATA直到遇到</script>,并且对于有src的script,其内容会被忽略。 |
|
返回顶楼 | |
发表时间:2008-07-10
niuyuewanzi 写道 jonson 写道 afcn0 写道 大哥你不会指的是这样写吧
这样子不符合语法吗?
<script type="text/javascript" src="test.js" /> <SCRIPT LANGUAGE="JavaScript"> function callBack(){ alert('run callback!'); } </SCRIPT> 看来你也有制定新语法的资质,厉害,实在是高 那就是说 我们定义回调函数 不能随便什么位置!? 语法没错,顺序错了. 要是全写在一个<SCRIPT></SCRIPT>里,FUNCTION在哪儿都成. 但是如果有多个<SCRIPT></SCRIPT>就有顺序之分了...从上到下....你不用FUNCTION,用一般变量一样也能看出来. <script type="text/javascript" src="test.js" ></script> <SCRIPT LANGUAGE="JavaScript"> function callBack(){ alert('run callback!'); } </SCRIPT> 和顺序没有关系必须这样写:<script></script> |
|
返回顶楼 | |