Javascript 在 Internet Explorer 8 中不起作用
Javascript does not work in 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.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;
它在Firefox和Chrome中运行良好,但在IE8中则不行。我知道document.getElementsByClassName
不起作用,我试图使用document.getElementsbyTakeName
重新制作我的代码,但没有让它工作。这就是我想出的:
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;
}
}
funciton initiate ()
{
if(document.getElementsByClassName)
{
var links = document.getElementsByClassName("external-link");
for (var i = 0; i < links.length; i++) {
links[i].onclick = confirmLeave;
}
} else {
var links = document.getElementsByTagName("external-link");
for (var i = 0; i < links.length; i++) {
links[i].onclick = confirmLeave;
}
}
}
window.onload = initiate;
external-link
是我用于离开我的网页的链接的类。
尝试使用 document.querySelectorAll(".external-link")
源
考虑包含jQuery库,如果这对你来说是一个可行的选择。然后你可以写这样的东西:
$('.external-link').click(function() { confirmLeave() });
这里的问题是document.getElementsByTagName()
将元素作为输入,例如 div
、span
或a
。 external-link
不是元素,因此它永远不会返回任何内容。
对于 IE8,您可以使用 document.querySelectorAll(".external-link")
。它采用CSS选择器作为输入。
如果您也需要支持较旧的浏览器,则可以尝试使用 https://gist.github.com/2397759,这是一个填充物,以使getElementsByClassName
在本机不支持它的浏览器上运行。
相关文章:
- 在Internet Explorer中,向所选内容添加选项不起作用
- 鼠标事件在 Internet Explorer 中不起作用
- 输入类型的图像在Internet Explorer中不起作用,但在Chrome和Firefox中起作用
- 包含jquery的Javascript在Internet Explorer中不起作用
- onClick和onClientClick事件一起使用.在Internet Explorer中不起作用
- Javascript图像动画在Firefox或Internet Explorer中不起作用
- 使用JS固定标题的表在Internet explorer中不起作用
- Angular $templateCache在 Internet Explorer 中不起作用
- 滑块图像在Internet Explorer中不起作用,但在其他浏览器中有效
- 带有 Internet Explorer 8/9 的 Editor Ace 不起作用
- Window.location 在 Internet Explorer 中不起作用
- Ajax POST 请求在 Internet Explorer 中不起作用
- 脚本在 Internet Explorer 中不起作用
- 在第二次加载时更改 iframe 样式,在 Internet Explorer 9 中不起作用
- 流体布局在 Internet Explorer 7 和 8 中不起作用
- blockUI 在 Internet Explorer 上不起作用
- Javascript在Internet Explorer上不起作用
- 屏幕键盘在 Internet Explorer 中不起作用
- jQuery 动画在 Internet Explorer 中不起作用
- 元标记中的JavaScript在Firefox和Internet Explorer上不起作用