Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 相当于;“父节点”;在internet explorer中_Javascript_Internet Explorer_Dom - Fatal编程技术网

Javascript 相当于;“父节点”;在internet explorer中

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

我写了一些代码来修改网页上的图像。适用于firefox和safari。但是,试图让它与InternetExplorer一起工作让我感到困惑。资源管理器中的“parentNode”等效于什么?或者,如何才能使其发挥作用

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;
尝试设置它。啊,这为我节省了很多麻烦-谢谢!我确实认为应该对答案进行编辑,以反映它不是保留字,但在我看来它仍然是正确的答案。