Javascript 相当于;“父节点”;在internet explorer中
我写了一些代码来修改网页上的图像。适用于firefox和safari。但是,试图让它与InternetExplorer一起工作让我感到困惑。资源管理器中的“parentNode”等效于什么?或者,如何才能使其发挥作用Javascript 相当于;“父节点”;在internet explorer中,javascript,internet-explorer,dom,Javascript,Internet Explorer,Dom,我写了一些代码来修改网页上的图像。适用于firefox和safari。但是,试图让它与InternetExplorer一起工作让我感到困惑。资源管理器中的“parentNode”等效于什么?或者,如何才能使其发挥作用 images = document.getElementsByTagName('img') parms = {}; for (a=0;a < images.length;a++){ parent = images[a].parentNode; // <-- W
images = document.getElementsByTagName('img')
parms = {};
for (a=0;a < images.length;a++){
parent = images[a].parentNode; // <-- What to substitute for explorer?
parms[a] = {};
parms[a].bigsrc=parent.getAttribute("href");
parms[a].w_o = images[a].width;
parms[a].h_o = images[a].height;
parms[a].IsBig = false;
parms[a].loaded = false;
images[a].border=0;
parent.setAttribute("href","javascript:MakeBig('"+a+"')");
}
images=document.getElementsByTagName('img'))
parms={};
对于(a=0;a 父项=图像[a].parentNode;//您是否希望parentNode成为锚点?看起来您只是试图将图像包装在链接中。如果这是正确的,则可以将onclick添加到图像本身,并设置一个手动光标。这样可以创建图像作为链接的外观,而不必关心链接的内容arentNode是。parentNode
在IE中运行良好(除了中,这里很可能不相关)。错误几乎肯定在代码的其他地方。问题在于将parentNode分配给名为“parent”的变量这似乎是IE中的一个保留字,它破坏了代码。更改var名称,它应该可以工作。只是一些一般性的评论:使用var
声明图像,parms
,a
和父项本地;不要使用setAttribute
设置href
,使用parent.href
指令ead(即疯狂);您可能希望parms
成为一个数组(而不是一个普通对象):var parms=[];
;您可能希望设置images[a].style.border=“none”
而不是border
属性,也就是说。您能提供一些HTML以便我们可以重现这个问题吗(适用于firefox,但不适用于IE)代码如下:这是一个很酷的图像缩放效果,只要我能让它与explorer(或opera)一起工作,除非explorer在“parentNode”上失败语句,因此其余代码甚至无法运行。冒着重复我自己的风险,parentNode
在IE中得到支持并正常工作。问题在别处。如果您提供一些HTML,我们可能会告诉您问题在哪里。蒂姆说问题在别处是正确的。请参阅我的最新答案,了解我认为问题在哪里。我不确定问题在哪里你说的“锚”是什么意思。我只是尝试更改单击图像时指向的链接。Anchor是用于创建链接的标记-这就是为什么在HTML中创建链接时,标记是“a”。因此,与其尝试使用Javascript修改图像周围的Anchor标记,不如改为修改图像自己的onclick?同样,这将解决所有问题如何避免需要关心parentNode是做什么的。这就解决了问题。如果IE给我一个有用的错误消息就好了。parent
不是保留字。您是否使用了var parent=images[a].parentNode;
就可以了。parent
是一个宿主对象,它提供了对窗口对象父帧的引用,并且显然(合法)不可在IE中设置,并且parent=images[a].parentNode;
尝试设置它。啊,这为我节省了很多麻烦-谢谢!我确实认为应该对答案进行编辑,以反映它不是保留字,但在我看来它仍然是正确的答案。