Javascript在Internet Explorer 8中不起作用
我有一个javascript请求用户确认他们想离开我的网站。这就是它的样子:Javascript在Internet Explorer 8中不起作用,javascript,internet-explorer-8,Javascript,Internet Explorer 8,我有一个javascript请求用户确认他们想离开我的网站。这就是它的样子: function confirmLeave() { if(confirm("Do you want to leave my webpage?")) { return true; } else { if(window.event) { window.event.returnValue = false; } else { e.pre
function confirmLeave()
{
if(confirm("Do you want to leave my webpage?")) {
return true;
} else {
if(window.event) {
window.event.returnValue = false;
} else {
e.preventDefault();
}
return false;
}
}
function initiate ()
{
var links = document.getElementsByClassName("external-link");
for (var i = 0; i < links.length; i++) {
links[i].onclick = confirmLeave;
}
}
window.onload = initiate;
external link
是我用于离开我的网页的链接的类。如果这是一个可行的选择,请考虑包括jQuery库。
然后你可以这样写:
$('.external-link').click(function() { confirmLeave() });
这里的问题是
document.getElementsByTagName()
将元素作为输入,例如div
、span
或a
<代码>外部链接不是元素,因此它永远不会返回任何内容
对于IE8,您可以使用document.querySelectorAll(“.external link”)
。它采用CSS选择器作为输入
如果您也需要支持较旧的浏览器,可以尝试使用polyfill,使
GetElementsByCassName
在本机不支持它的浏览器上工作。尝试使用document.querySelectorAll(“外部链接”)
我不想使用任何图书馆来代替文档。getElementsByClass?是的。尽管它使用CSS选择器作为输入,所以
getElementsByClassName(“外部链接”)
变成querySelectorAll(“.external link”)
@Benji,是的。根据MSDNW3C选择器API提供了两种使用选择器选择对象的方法:querySelector,它选择符合条件的第一个对象;和querySelectorAll,它返回符合条件的所有对象。您可以选择文档对象或从公共容器对象派生的对象。
function=initiate代码>此行似乎不正确。可能是这样的:var initiate=function()…
Ah,只是一个输入错误。现在修好了
$('.external-link').click(function() { confirmLeave() });