【问题标题】:Equivalent of "parentNode" in internet explorer相当于 Internet Explorer 中的“parentNode”
【发布时间】:2011-03-08 17:33:25
【问题描述】:

我编写了一些代码来修改网页上的图像。适用于 Firefox 和 safari。但试图让它与 Internet Explorer 一起工作让我很难过。资源管理器中的“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+"')");
}

【问题讨论】:

  • 只是一些通用的cmets:使用var在本地声明imagesparmsaparent;不要使用setAttribute 来设置href,而是使用parent.href(IE 吓坏了);您可能希望 parms 成为一个数组(而不是一般对象):var parms = [];;您可能想要设置images[a].style.border = "none" 而不是border 属性,即obsolete
  • 能否提供一些 HTML 以便我们重现问题?
  • 这里有一个(适用于 Firefox 但不适用于 IE)代码的示例:woodgears.ca/workshop/jacques/min.html 这是一个很酷的图像缩放效果,如果我可以让它与资源管理器(或歌剧,就此而言)一起工作)

标签: javascript internet-explorer dom


【解决方案1】:

您是否希望 parentNode 成为锚点?看起来您正试图将图像包装在链接中。如果这是正确的,那么可以替代的方法是向图像本身添加一个 onclick,并设置一个手形光标。这可以使图像看起来像是一个链接,而您不必关心 parentNode 是什么。

【讨论】:

  • 我不确定你所说的“锚”是什么意思。我只是想更改单击图像时指向的链接。
  • Anchor 是用于创建链接的标签 - 这就是为什么当您在 HTML 中创建链接时,标签是“a”。因此,与其尝试使用 Javascript 来修改围绕图像的锚标记,为什么不改为修改图像自己的 onclick 呢?同样,这将使您不必关心 parentNode 是什么
【解决方案2】:

parentNode 在 IE 中运行良好(certain cases 除外,这里很可能无关紧要)。几乎可以肯定该错误在您的代码中的其他地方。

【讨论】:

  • 除了资源管理器在“parentNode”语句上失败,所以其余代码甚至无法运行。
  • 冒着重蹈覆辙的风险,parentNode 在 IE 中得到支持并且可以正常工作。问题在别处。如果您提供一些 HTML,我们可能会告诉您在哪里。
  • Tim 是正确的,问题出在其他地方。请参阅我的最新答案以了解我认为的位置。
【解决方案3】:

问题在于将 parentNode 分配给名为“parent”的 var。这似乎是 IE 中破坏代码的保留字。更改 var 名称,它应该可以工作。

【讨论】:

  • 谢谢。那解决了它。要是 IE 给了我一个有用的错误信息就好了。
  • parent 不是保留字。如果您使用var parent = images[a].parentNode;,那就没问题了。 parent 是一个宿主对象,它提供对窗口对象的父框架的引用,并且显然(合法地)不能在 IE 中设置,parent = images[a].parentNode; 尝试设置它。
  • 啊,这为我省去了很多麻烦 - 谢谢!我确实认为应该编辑答案以反映它不是保留字,但在我看来它仍然是正确的答案。
猜你喜欢
  • 2016-04-08
  • 2010-09-17
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
相关资源
最近更新 更多