2011-07-10 36 views
0

我有一些代码允许我将鼠标悬停在多个链接上,随后替换指定DIV中的内容。它适用于大多数浏览器,但Firefox提供了一个错误 - 通过删除页面的doctype代码可以“修复”错误,但显然这意味着代码存在严重问题,并且不符合规范。链接悬停换行div - Firefox中的Javascript错误

这里是JavaScript:

var description = new Array(); 
description[0] = "Content one"; 
description[1] = "Content two"; 
description[2] = "Content three"; 

每个链接看起来是这样的,用不同的号码:

<a onMouseOver="FeatureSwap.innerHTML = description[1];"> 

这是有其内容的DIV在徘徊改变上的一个链接:

<div id="FeatureSwap">Default content here</div> 

Firefox抛出的错误是:

FeatureSwap is not defined 
+0

欢迎堆栈溢出!记得点赞有用的答案。如果答案解决了您的问题,请记住通过检查来选择答案。 –

回答

1

innerHTML是DOM的一个元素的属性,文档对象模型。

所以你需要首先获得访问元素。在你的情况下,元素是带有FeatureSwap的id的div。

在下面的代码中,我们首先通过它的ID使用大多数所有浏览器通用的方法来查找元素。然后我们设置它的innerHTML属性。

尝试

<a onMouseOver="document.getElementById('FeatureSwap').innerHTML = description[1];"> 

仅供参考,除去你带领火狐在"quirks mode"显示您的网页,而不是标准兼容模式DOCTYPE声明。 Firefox中的notable features of quirks mode之一是元素可以通过它们的ID访问,就好像它们是变量一样。欲了解更多信息,请参阅WHATWG spec

+0

+1打我30秒。在低电量下。 :D – Shef

+0

绝对是现货,反应非常快!谢谢:) – user837780

+0

@谢菲:是的,我知道这种感觉!感谢您的支持。问候。 –

0

尝试:

<a onMouseOver="document.getElementById('FeatureSwap').innerHTML = description[1];"> 
+0

绝对是现货,反应非常快!谢谢 :) – user837780