Javascript 对象没有';t支持属性或方法';项目';IE 9
我正在努力找到所有的扣子。在chrome和现代浏览器中,这很好,但在ie9中,我有上面的错误。我无法更改页面上的HTML,只能更改页面上的javascript。在chrome中,我可以使用document.getElementsByCassName(),但在ie 9中,我不能使用,即使我应该能够使用,可能是因为该网站必须在与怪癖相似的情况下运行。我已经尝试过重写代码,使其在没有此功能的情况下工作,并且相信我已经获得了代码中的元素Javascript 对象没有';t支持属性或方法';项目';IE 9,javascript,dom,internet-explorer-9,Javascript,Dom,Internet Explorer 9,我正在努力找到所有的扣子。在chrome和现代浏览器中,这很好,但在ie9中,我有上面的错误。我无法更改页面上的HTML,只能更改页面上的javascript。在chrome中,我可以使用document.getElementsByCassName(),但在ie 9中,我不能使用,即使我应该能够使用,可能是因为该网站必须在与怪癖相似的情况下运行。我已经尝试过重写代码,使其在没有此功能的情况下工作,并且相信我已经获得了代码中的元素 if(navigator.userAgent.toLowerCas
if(navigator.userAgent.toLowerCase().indexOf('msie') != -1){
if (document.all) {
var allElements = document.all;
} else {
var allElements = document.getElementsByTagName("*");
}
// Empty placeholder to put in the found elements with the class name
var oldHrefs = [];
for (var i = 0, ii = allElements.length; i < ii; i++) {
if (allElements[i].className == 'ButtonItem') {
oldHrefs[oldHrefs.length] = allElements[i];
}
}
}
else
{
var oldHrefs = document.getElementsByClassName('ButtonItem');
}
if(navigator.userAgent.toLowerCase().indexOf('msie')!=-1){
如果(全部文件){
var等位基因=document.all;
}否则{
var-allegements=document.getElementsByTagName(“*”);
}
//空占位符,用于放入具有类名的已找到元素
var-oldHrefs=[];
对于(变量i=0,ii=allegments.length;i
但是我需要循环代码,删除href并添加onclick,这是我恢复下一个错误的时候。对象不支持属性或方法“item”。我能做些什么来纠正下面的代码
for (var i = 0; i < oldHrefs.length; i++) {
var thisHref = oldHrefs.item(i).getAttribute('href');
if (thisHref != null) {
if (thisHref.includes('Act=1468')) {
oldHrefs.item(i).removeAttribute("href");
oldHrefs.item(i).setAttribute('onclick', 'window.location.href="' + thisHref + '";this.removeAttribute("onclick");');
}
}
}
for(var i=0;i
谢谢您可以使用
[]
而不是项
如oldHrefs[i]。getAttribute('href')
和。indexOf('Act=1468')>-1
而不是。includes('Act=1468')
添加了上述注释并删除了答案。正如你所说,当你看起来处于comp.mode./怪癖mode时,很多正常的事情都不起作用,所以上面的建议应该很有希望做到这一点。