Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Onclick-in<;a>;导致重新加载页面而不是执行JS代码_Javascript_Html - Fatal编程技术网

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在那里工作得很好。使用inline
onclick
有什么问题?我的错,我做了一些不好的测试。内联
onClick
是一种不好的做法,这是因为当javascript和html可以分开时,您将它们组合在一起。在简单的情况下,这不会带来任何问题,但是当您的系统变得更加复杂并且需要更改某些内容时,您将不得不更改onClick-everywhere,而不是更改一个事件处理程序。这里的问题是,对于inline
onClick
,它没有使用
foo
的返回值。如果您使用类似于
document.getElementById(“someID”).onclick=foo的东西,它可以正常工作。但这行不通。您需要
返回foo()
或仅使用
onclick=“foo”
返回false在那里工作得很好。使用inline
onclick
有什么问题?我的错,我做了一些不好的测试。内联
onClick
是一种不好的做法,这是因为当javascript和html可以分开时,您将它们组合在一起。在简单的情况下,这不会带来任何问题,但是当您的系统变得更加复杂并且需要更改某些内容时,您将不得不更改onClick-everywhere,而不是更改一个事件处理程序。这里的问题是,对于inline
onClick
,它没有使用
foo
的返回值。如果您使用类似于
document.getElementById(“someID”).onclick=foo的东西,它就可以正常工作。