我正在尝试检测是否在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>
提前致谢, Ĵ
答案 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;
};