Tan*_*ger 13 javascript syntax
我有一个打开模型窗口的脚本.. Chrome在一条甚至没有结束花括号的行上给了我"Uncaught SyntaxError:Unexpected token}".
以下是包含错误的脚本部分:
function showm(id1){
window.onscroll=function(){document.getElementById(id1).style.top=document.body.scrollTop;};
document.getElementById(id1).style.display="block";
document.getElementById(id1).style.top=document.body.scrollTop;
}
Run Code Online (Sandbox Code Playgroud)
有没有人对此有任何想法?任何帮助表示赞赏.
Day*_*Day 21
尝试通过jslint运行整个脚本.这可能有助于指出错误原因.
编辑确定,这不是脚本的语法问题.至少不是jslint可以检测到的方式.
在http://ft2.hostei.com/ft.v1/上播放了您的实时代码,看起来生成的代码中存在语法错误,您的脚本会将这些错误放入onclickDOM中的属性中.大多数浏览器都没有很好地报告通过这样的事情运行的JavaScript中的错误(onclick动态插入元素的属性中的一段脚本的文件和行号是什么?).这可能是您在Chrome中收到令人困惑的错误消息的原因.虽然FireBug确实显示导致问题的代码,但FireFox错误消息不同,也没有有用的行号.
这段代码取自edit您的HTML中的内联脚本块中的函数:
var sub = document.getElementById('submit');
...
sub.setAttribute("onclick", "save(\""+file+"\", document.getElementById('name').value, document.getElementById('text').value");
Run Code Online (Sandbox Code Playgroud)
请注意,这onclick会将元素的属性设置为无效的 JavaScript代码:
<input type="submit" id="submit" onclick="save("data/wasup.htm", document.getElementById('name').value, document.getElementById('text').value">
Run Code Online (Sandbox Code Playgroud)
JS是:
save("data/wasup.htm", document.getElementById('name').value, document.getElementById('text').value
Run Code Online (Sandbox Code Playgroud)
注意缺少关闭paren完成呼叫save.
另外,插入onclick属性不是一种在JavaScript中添加事件处理程序的非常现代或干净的方式.为什么不使用DOM addEventListener来简单地将函数连接到元素?如果你使用像jQuery这样的东西,这将更简单.
| 归档时间: |
|
| 查看次数: |
131962 次 |
| 最近记录: |