Javascript IE 10,document.links无法使用链接id访问,只能使用索引访问
以下代码适用于FireFox 23.0.1和Chrome 29,但不适用于IE 10。有什么问题吗Javascript IE 10,document.links无法使用链接id访问,只能使用索引访问,javascript,html,Javascript,Html,以下代码适用于FireFox 23.0.1和Chrome 29,但不适用于IE 10。有什么问题吗 <!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript"> function loadFile1(){ alert("loading..."); }
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
function loadFile1(){
alert("loading...");
}
</script>
</head>
<body>
<a href="file2.html" id="link1">file 1</a>
<h2>Hello</h2>
<script type="text/javascript">
var arr = document.links;
document.links['link1'].onclick = loadFile1;
</script>
</body>
</html>
函数loadFile1(){
警报(“加载…”);
}
你好
var arr=document.links;
document.links['link1'].onclick=loadFile1;
在我看来像个bugdocument.links
返回一个,因此您可以使用HTMLCollection.namedItem(name)
方法按名称检索链接:
document.links.namedItem('link1').onclick = loadFile1;
这将适用于所有浏览器。
document.getElementById('link1')。onclick=…
或者,可能是因为当您单击锚元素时,它会在您看到警报之前离开页面。@Fabricio Mattéonclick中的警报会阻止页面离开,直到它被解除。@Strelokalert
s是DOM0-它们没有规范。只是我们知道的每一个浏览器都会阻止解释器,直到警报解除为止,但好吧,我们谈论的是IE。这只是一个假设,因为不幸的是,我目前无法在IE10上测试。@Fabricio Matté看到我的答案了。是的,namedItem
方法()是实现这一点的标准方法。但是,由于元素有一个id,访问它的一种标准且更简单的方法是使用document.getElementById
imho。