0

いくつかのリンクにカーソルを合わせて、指定した DIV のコンテンツを置き換えることができるコードがあります。ほとんどのブラウザーで動作しますが、Firefox ではエラーが発生します。エラーは、ページの doctype コードを削除することで「修正」できますが、これは明らかに、コードに大きな問題があり、準拠していないことを意味します。

Javascript は次のとおりです。

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

各リンクは次のようになり、番号が異なります。

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

これは、リンクの 1 つにカーソルを合わせると内容が変更された DIV です。

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

Firefox がスローするエラーは次のとおりです。

FeatureSwap is not defined
4

2 に答える 2

1

innerHTMLDOM の要素である Document Object Model の属性です。

したがって、最初に要素にアクセスする必要があります。あなたの場合、要素はFeatureSwapのidを持つdivです。

次のコードでは、最初に、ほとんどすべてのブラウザーに共通の方法を使用して、ID で要素を検索します。次に、その innerHTML プロパティを設定します。

試す

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

参考までに、doctype 宣言を削除することで、Firefox が標準準拠モードではなく「互換モード」でページを表示するようになりました。Firefoxの互換モードの注目すべき機能の 1 つは、要素が変数であるかのように ID によってアクセスできることです。詳細については、WHATWG 仕様を参照してください。

于 2011-07-10T16:36:15.630 に答える
0

試す:

<a onMouseOver="document.getElementById('FeatureSwap').innerHTML = description[1];">
于 2011-07-10T16:36:45.913 に答える