Javascript Onclick-in<;a>;导致重新加载页面而不是执行JS代码
我的网址: 我的代码:Javascript Onclick-in<;a>;导致重新加载页面而不是执行JS代码,javascript,html,Javascript,Html,我的网址: 我的代码: <a href="#" onclick="foo();return false;">link</a> <a href="#" onclick="foo();return false;">link/a> 可能,这个问题是由我的网站的URL引起的。XYZ参数是网站的url,但使用类似于“%C5%82%C3%B3”的内容,而不是特殊字符(类似于使用htmlspecialchars()之后的内容) 有趣的是,单击后,页面会重新加载“正
<a href="#" onclick="foo();return false;">link</a>
<a href="#" onclick="foo();return false;">link/a>
可能,这个问题是由我的网站的URL引起的。XYZ参数是网站的url,但使用类似于“%C5%82%C3%B3”的内容,而不是特殊字符(类似于使用htmlspecialchars()之后的内容)
有趣的是,单击后,页面会重新加载“正常”URL,类似:(带有“/”等特殊字符)
我能做些什么来解决这个问题
编辑
以上代码工作正常。谢谢你抽出时间 编辑
尽管如此,我完全认为您的代码不起作用,而下面的代码起作用了。但我猜你发布的代码已经是正确的了
另一方面,您应该避免使用像
onClick
这样的属性,而是创建事件处理程序(我建议查看jQuery)。Edit
尽管如此,我完全认为您的代码不起作用,而下面的代码起作用了。但我猜你发布的代码已经是正确的了
另一方面,您应该避免使用类似于
onClick
的属性,而是创建事件处理程序(我建议查看jQuery)。我在系统中尝试了相同的代码。代码正在工作,警报框可见
我的代码:
<a href="#" onclick="foo();return false;">link</a>
<a href="#" onclick="foo();return false;">link/a>
链接/a>
javascript是
<script type="text/javascript">
function foo()
{
alert("sss");
}
</script>
函数foo()
{
警报(“sss”);
}
我正在使用vs2008我在我的系统中尝试了相同的代码。代码正在工作,并且警报框可见 我的代码:
<a href="#" onclick="foo();return false;">link</a>
<a href="#" onclick="foo();return false;">link/a>
链接/a>
javascript是
<script type="text/javascript">
function foo()
{
alert("sss");
}
</script>
函数foo()
{
警报(“sss”);
}
我使用的是vs2008是的,这里肯定还有其他事情。下面是一个简单的例子,效果很好:
<html>
<body>
<a href="#" onclick="foo();return false">link</a>
<script type="text/javascript">
function foo() { alert("hi"); }
</script>
</body>
</html>
函数foo(){alert(“hi”);}
指定onclick内联不是一个好的实践,您应该执行以下操作
<a id="someId" /* ... */ >
// ...
<script type="text/javascript">
function foo() { alert("hi"); return false; }
document.getElementById("someId").onclick = foo;
</script>
// ...
函数foo(){alert(“hi”);返回false;}
document.getElementById(“someId”).onclick=foo;
但是在任何情况下,最有可能的罪魁祸首是您的脚本在某个地方有语法错误,并且根本没有加载。您可以通过设置
onclick=“return false”
来验证这一点。如果这不起作用,很可能您还有其他正在被触发的事件处理程序。但是,由于上述——我们对您的代码所知的一切——都是有效的,这里的任何人都不可能在没有更多信息的情况下诊断出问题所在。是的,这里肯定发生了其他事情。下面是一个简单的例子,效果很好:
<html>
<body>
<a href="#" onclick="foo();return false">link</a>
<script type="text/javascript">
function foo() { alert("hi"); }
</script>
</body>
</html>
函数foo(){alert(“hi”);}
指定onclick内联不是一个好的实践,您应该执行以下操作
<a id="someId" /* ... */ >
// ...
<script type="text/javascript">
function foo() { alert("hi"); return false; }
document.getElementById("someId").onclick = foo;
</script>
// ...
函数foo(){alert(“hi”);返回false;}
document.getElementById(“someId”).onclick=foo;
但是在任何情况下,最有可能的罪魁祸首是您的脚本在某个地方有语法错误,并且根本没有加载。您可以通过设置
onclick=“return false”
来验证这一点。如果这不起作用,很可能您还有其他正在被触发的事件处理程序。但是因为上面这些--我们所知道的所有代码--都是有效的,这里的任何人都不可能在没有更多信息的情况下诊断出问题所在。请发布您的真实代码,我们将帮助您找到错误所在。我将真实代码更改为我发布的简单代码,但仍然无法正确工作给定部分工作正常:很可能您的页面上出现js错误,javascript正在运行根本不执行。安装Firebug,打开它,刷新页面并查找错误。代码看起来不错。@Jack,代码运行得很好,所以问题出在别处了。请发布您的真实代码,我们将帮助您找到错误的地方。我将真实代码更改为我发布的简单代码,但仍然无法正确工作给定部分工作正常:很可能您的页面上出现js错误,javascript根本没有执行。安装Firebug,打开它,刷新页面并查找错误。代码看起来不错。@Jack,代码运行得很好,所以问题出在别处了。那不行。您需要返回foo()
或仅使用onclick=“foo”
。返回false代码>在那里工作得很好。使用inlineonclick
有什么问题?我的错,我做了一些不好的测试。内联onClick
是一种不好的做法,这是因为当javascript和html可以分开时,您将它们组合在一起。在简单的情况下,这不会带来任何问题,但是当您的系统变得更加复杂并且需要更改某些内容时,您将不得不更改onClick-everywhere,而不是更改一个事件处理程序。这里的问题是,对于inlineonClick
,它没有使用foo
的返回值。如果您使用类似于document.getElementById(“someID”).onclick=foo的东西,它可以正常工作。但这行不通。您需要返回foo()
或仅使用onclick=“foo”
。返回false代码>在那里工作得很好。使用inlineonclick
有什么问题?我的错,我做了一些不好的测试。内联onClick
是一种不好的做法,这是因为当javascript和html可以分开时,您将它们组合在一起。在简单的情况下,这不会带来任何问题,但是当您的系统变得更加复杂并且需要更改某些内容时,您将不得不更改onClick-everywhere,而不是更改一个事件处理程序。这里的问题是,对于inlineonClick
,它没有使用foo
的返回值。如果您使用类似于document.getElementById(“someID”).onclick=foo的东西,它就可以正常工作。