2011-07-18 10 views
0

IEの下の行が機能しています。 popupはdiv要素です。Firefoxでall()関数が動作しない

popup.all("submenu").innerHTML = ""; 

しかし、エラー以下の他のブラウザでは

popup.allは関数ではありません来ています。

他のブラウザのすべての機能の代替手段はありますか?

お願いします。ありがとう。

答えて

0

はこれを試してみてください(Internet Explorerを含む)すべてのブラウザで

var popup=document.getElementById('popup'); 
for (i in popup.childNodes) { 
    if (popup.childNodes[i].nodeType == 1) { 
     popup.childNodes[i].innerHTML = ''; 
    } 
} 
+0

IDまたは名前をグローバル変数として使用してDOM要素にアクセスすることは、有害であると考えられるIE独自の機能です。標準モードではほとんどのブラウザーで動作しません。 * children *のすべてのenumerableプロパティがDOM要素である(DOM要素が* children *プロパティをサポートしている)と仮定してはいけません。 – RobG

+0

あなたはchildren [i] .innerHTMLをテストできます。存在する場合は、 '' ...それはうまくいかないでしょうか? –

+0

ちなみに、ポップアップはポップアップ= document.getElementById( 'someElement')... 誤解... :) –

1

すべてのメソッドは、ほとんどのブラウザでサポートされていません。 IEを除くdocument.getElementByIdをテストし、falseの場合は "all"メソッドを使用します。

+0

私は、IE4(またはそれ以下)を使っている人にブラウザをアップグレードする必要があることを誰にも伝えたいと思うだけです。 –

+0

@Anthony - 私の言葉は正確です。^_^ –

1

あなたは、DOMツリー内のその場所でアイテムを見つけることが期待されている(私はそれが.innerHTMLプロパティ与えられたDOMノードだと仮定しています)。たとえば、document.getElementById()document.getElementsByTagName()を使用できます。もちろん、ノードへの参照は通常の変数に格納することができます。

0

代わりにdocument.getElementById(elementName).innerHTML = whatever;を使用してください。

関連する問題