单击检测Href

时间:2011-10-04 02:24:49

标签: javascript html onclick href onbeforeunload

我正在尝试检测是否在onbeforeunload上点击了某个元素。我无法让它发挥作用。下面是项目中Javascript代码和HTML代码的示例(请注意,我无法控制HTML元素,因为它不是我的网站)

function checkLeave() {
   var p = document.getElementByElementById('yeah');
   if (p.href.onclick) {
      //do something
   }

   else {
      //do something else
   }
   }
 window.onbeforeunload = checkLeave;


 HTML CODE
 //The goSomewhere goes to another page
 <a id="yeah" href="javascript:goSomewhere();">
    <img src="smiley.png">
 </a>

提前致谢, Ĵ

3 个答案:

答案 0 :(得分:1)

您需要做的是将事件处理程序绑定到页面上的每个<a href=""></a>。 这可以通过以下方式完成:

// Select all links
//var allLinks = document.querySelectorAll('a[href]');
var allLinks = document.links;

// Bind the event handler to each link individually
for (var i = 0, n = allLinks.length; i < n; i++) {
    //allLinks[i].addEventListener('click', function (event) {});
    allLinks[i].onclick = function () {
        // Do something            
    };
}

答案 1 :(得分:0)

您正在测试onclick标记中是否存在<a>属性。它没有出现在标记中。标记不是使用onclick,而是将脚本称为元素的href。所以你需要在href中寻找一个脚本:

var p = document.getElementByElementById('yeah');
if (p.href.indexOf("javascript") === 0) {
   //do something
}
else {
   // do something else
}

答案 2 :(得分:0)

也许是这样的? (只是想法)

document.getElementById('yeah').onclick = function() {
  clicked = this.href;
};