0

这是我的代码:

    function Alert()
{   
alert("Please click on OK to continue.")
}
window.onload = function()

    {       
    var anchors = document.getElementsByTagName("a");
    for (var i = 0; i < anchors.length; i++) {
        anchors[i].onclick = function() {return(false);};
    }
};

链接编码如下:

<a href="main.html" onclick="Alert()"> Link to Main Page</a>

当我对此进行测试时,链接不起作用(如预期的那样),但我没有收到应该说“请单击确定继续”的警报框。单击链接时。有人可以就如何解决这个问题给我建议吗?最终,一旦页面加载并单击链接,它应该显示并警告说“请单击确定继续”。什么都不应该发生。我知道如何通过更改“href”属性来做到这一点,但我需要知道如何在不更改该部分的情况下做到这一点。

4

3 回答 3

2

您没有收到警报,因为您的代码更改了所有“点击”处理程序,删除了以 HTML 编码的处理程序。所涉及的 DOM 节点上只有一个“onclick”属性,因此一旦您的脚本运行调用“Alert()”的处理程序,就会被刚刚返回的处理程序替换false

于 2013-10-03T18:57:04.383 回答
1

你可以用 JQuery 很容易地做到这一点:

$('a').on('click',function(e){
    e.preventDefault();
    alert('your alert message');
});

你可以在这个小提琴中测试它:http: //jsfiddle.net/kvCwW/

于 2013-10-03T18:58:37.843 回答
0

您需要添加e.preventDefault()到您的点击处理程序:

anchors[i].addEventListener("click", function(e) {
    e.preventDefault();
    return false;
}, false);
于 2013-10-03T18:57:35.827 回答