我的网址:http://www.example.com/?product=3&url=XYZ
我的代码:
<a href="#" onclick="foo();return false;">link</a>
点击后,页面正在重新加载,而不是执行foo()函数。
JS已启用。 foo()的身体:
function foo() { alert("sss"); }
可能这个问题是由我网站的网址引起的。 XYZ参数是网站的网址,但有“%C5%82%C3%B3”而不是特殊字符(类似于使用htmlspecialchars()之后)。
有趣的是,点击页面后会重新加载“普通”网址,例如:http://www.example.com/?product=3&url=http://www.example.com(包含“/”等特殊字符)。
我该怎么做才能解决这个问题?
修改 以上代码工作正常。感谢您的时间。
答案 0 :(得分:4)
是的,肯定会有其他事情发生在这里。这是一个很好的例子:
<html>
<body>
<a href="#" onclick="foo();return false">link</a>
<script type="text/javascript">
function foo() { alert("hi"); }
</script>
</body>
</html>
分配onclick内联不是一个好习惯,你应该做类似
的事情<a id="someId" /* ... */ >
// ...
<script type="text/javascript">
function foo() { alert("hi"); return false; }
document.getElementById("someId").onclick = foo;
</script>
但无论如何,最可能的罪魁祸首是你的脚本在某处有语法错误而根本没有加载。您可以通过设置onclick="return false"
来验证这一点。如果 不起作用,则可能是您正在触发其他一些事件处理程序。但是因为上述 - 我们所知道的所有代码 - 都有效,所以没有人可以在没有更多信息的情况下诊断出问题所在。
答案 1 :(得分:0)
修改强>
没关系,我完全假设你的代码没有用,下面的代码也没用。但我想你发布的代码已经是正确的了。
单独注意,你应该避免使用像onClick
这样的属性,而是创建事件处理程序(我建议看看jQuery)。
答案 2 :(得分:0)
我在我的系统中尝试了相同的代码。代码正在工作,警报框可见。
我的代码:
<a href="#" onclick="foo();return false;">link/a>
和javascript是
<script type="text/javascript">
function foo()
{
alert("sss");
}
</script>
我正在使用vs2008