0

我为禁用 javascript 的浏览器编写了这个脚本。

这是HTML:

<a href="http://www.google.com/" onClick="jstest();">Google</a>

这是Javascript:

<script type="text/javascript">
    function jstest() {
    alert("Success");
    // show popup
    return false;
    };
</script>

如果启用了 javascript,它应该提醒一个显示成功的弹出窗口。如果它被禁用,它应该移动到谷歌页面。一个朋友告诉我这样做。它适用于 jsFiddle.net。但如果我尝试在我的工作中做到这一点,那就不行了。

当我点击时它会显示弹出窗口,当我关闭弹出窗口时它会移动到谷歌页面。

我希望它保持在同一页面上。我不希望它在链接页面上移动。

只有在禁用 javascript 时它才会移动。

我在这个脚本中做错了什么?

谢谢你,

基肖尔。

4

4 回答 4

1

您需要在它尝试分配处理程序的元素之后onclick包含该脚本。或者将该代码包装在onload处理程序中。否则 JS 在元素被解析之前执行所以getElementById("goo")找不到它。

顺便说一句,您不需要内联 html 属性onclick以及在 JS 中分配处理程序。该属性正在尝试调用jstest()您的代码中不存在的全局函数。您可以删除该document.getElementById("goo").onclick =部分,只需声明与内联 html 属性中使用的名称相同的函数onclick

我猜它可以在 jsfiddle.net 上工作,因为默认情况下 jsfiddle 将您的代码包装在一个onload处理程序中(您可以通过左侧的面板更改它)。

于 2013-02-06T11:57:08.453 回答
0

不明白为什么您的代码中嵌入了 onclick

jQuery :

$(function() {
    $("#goo").click(function(e){
      e.preventDefault();
      // Do whatever you want here
    })
})
于 2013-02-06T12:01:37.040 回答
0

你可以使用 jQuery 来做这样的事情

$(document).ready(function() {
    $("#goo").click(function(event){
      event.preventDefault();
      alert("Success");
    });
});

希望这可以帮助

这是一个链接

于 2013-02-06T12:06:36.663 回答
0

试试这个作为你的超链接:

<a href="http://www.google.com/" onClick="return jstest();">

onClick 中的返回应该确认您的函数的返回 false 应该冒泡到超链接的行为。

于 2013-02-06T14:43:54.573 回答