[英]Javascript does not work in Internet Explorer 8
I have a javascript to ask the user to confirm that they want to leave my website. 我有一个javascript要求用户确认他们想要离开我的网站。 This is how it looks:
这是它的样子:
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;
It works good in Firefox and Chrome but not in IE8. 它适用于Firefox和Chrome,但不适用于IE8。 I know that
document.getElementsByClassName
doesn't work and I tried to remake my code using document.getElementsbyTakeName
but haven't got it to work. 我知道
document.getElementsByClassName
不起作用,我试图使用document.getElementsbyTakeName
重新制作我的代码但是没有让它工作。 This is what I came up with: 这就是我想出的:
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;
The external-link
is the class I'm using for the links that are to leave my webpage. external-link
是我用于离开我的网页的链接的类。
consider including jQuery library if that's a viable option for you. 考虑包括jQuery库,如果这对你来说是一个可行的选择。 then you may write something like this:
那么你可以这样写:
$('.external-link').click(function() { confirmLeave() });
The problem here is that document.getElementsByTagName()
takes an element as it's input, eg div
, span
or a
. 这里的问题是
document.getElementsByTagName()
接受一个元素作为它的输入,例如div
, span
或a
。 external-link
is not an element, so it'll never return anything. external-link
不是一个元素,所以它永远不会返回任何东西。
For IE8, you can use document.querySelectorAll(".external-link")
. 对于IE8,您可以使用
document.querySelectorAll(".external-link")
。 It takes a CSS selector as it's input. 它需要一个CSS选择器作为它的输入。
If you need to support older browsers too, you could try using https://gist.github.com/2397759 which is a polyfill to make getElementsByClassName
work on browsers that don't support it natively. 如果您还需要支持旧版浏览器,可以尝试使用https://gist.github.com/2397759这是一个polyfill,使
getElementsByClassName
可以在本机不支持它的浏览器上运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.