【问题标题】:SCRIPT1002: Syntax Error, Line 1 Character 6SCRIPT1002:语法错误,第 1 行字符 6
【发布时间】:2012-07-01 01:14:14
【问题描述】:

在 IE 开发人员 (F12) 控制台中,我设法让我的页面正常运行;除了一个!

SCRIPT1002:语法错误
mypage.php,第 1 行字符 6

我使用的是 IE9。有什么问题?

这是我的代码:

<!DOCTYPE html>
<head>
  <script type='text/javascript' src='/files/jquery-1.7.2.min.js'></script>
  <script type="text/javascript">
    $(document).ready(function() {
      $("#donateButton").click(function() {
        alert('hey');
      });
    });
  </script>
</head>
<body>
  <a href="javascript:void();" id="donateButton">asdsadasd</a>
</body>

当我点击#donateButton 时,会产生一个错误。但是,当我将 javascript:void() 更改为 # 时,不再发生错误。为什么?

【问题讨论】:

  • 我猜大概是你的 &lt;script&gt; 块之一的第 1 行。
  • 好的,但那就是:"$(document).ready(function () {"
  • 我的精神力量仍然缺乏远程调试的能力(我绝对应该有一天安装那个服务包)。请将您的 HTML 和 JS 修剪到仍然出现错误的几行,然后将代码放入您的问题中。它一定是缺少括号之类的东西。

标签: javascript html internet-explorer syntax


【解决方案1】:

“等等……IE9 不喜欢&lt;a href="javascript:void();" id="donateButton"&gt; 吗??看来这就是问题所在……?”
Comment by Chud37

是的,就是问题所在。 void运算符不是函数。使用javascript:void 0javascript:void(0)#。更好的是,将event.preventDefault() 添加到您的函数中:

$('#donateButton').click(function(ev) {
    ev.preventDefault();
    alert('hello');
});

【讨论】:

  • 那我可以用什么代替呢?如果我使用#,那么 IE 会烦人地移动到页面顶部。
  • @Chud37 阅读答案。 # 必须与 preventDefault() 结合使用。
  • javascript:void(0) 对我不起作用,但 javascript:void 0 确实有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
相关资源
最近更新 更多