2011-10-25 4 views
0

私のページのimage onClickイベントから呼び出すjavascript関数があります。domはIEで正しく動作していることを参照しています

基本的にこの関数は、同じページ内の要素を参照する変数を設定します。ここ

は、関数が呼び出される方法です(ノート、HTMLはPHPを使用して印刷されますが、それは、HTML自体には何の影響も与えないと思います):ここ

echo "<img src='site/images/apps/show.gif' onClick='apps()' id='appbutton' style='#'>"; 

は、どのようなスクリプト参照であります:

<script type="text/javascript"> 
function apps() 
{ 
var element = document.getElementById("app_frame"); 
if (element.width == '0%') 
{ 
    parent.document.getElementById("frame").setAttribute("width","100%"); 
    parent.document.getElementById("app_frame").setAttribute("width","0%"); 
    parent.document.getElementById("appbutton").setAttribute("src","site/images/apps/show.gif"); 
parent.document.getElementById("wthrbutton").style.visibility="hidden"; 
} 
else 
{ 
    parent.document.getElementById("frame").setAttribute("width","65%"); 
    parent.document.getElementById("app_frame").setAttribute("width","35%"); 
    parent.document.getElementById("appbutton").setAttribute("src","site/images/apps/hide.gif"); 
    parent.document.getElementById("wthrbutton").style.visibility="visible"; 
} 
} 
</script> 

メインです:

<iframe frameborder="0" name="app_frame" src="site/apps.html" width="0%" height="100%" scrolling="no"></iframe> 

、最終的には、ここでは、それが参照されたし、何がそれをどのように行われるかでありますsueは関数の最初の行にあり、var element = document.getelementbyidです。

Firefox、Chrome、Safariはすべてこの問題を解決していますが、変数を設定しているように見えるものはありません。

誰もが、これらのブラウザで動作する変数としてその要素を設定する他の方法を知っていますか? app_frameのidを持つものが存在しないためである

おかげ

+1

:にあなたのiframeのコードを変更しますか? –

+0

iframeに* app_frameという名前の "app_frame"を与えようとしましたか? –

+0

こんにちは、これを試しましたが、効果はありませんでした。( – Eds

答えて

2

。 iframeの名前をapp_frameに設定しました。 broweserのinconsistancesを削除するにはjQueryのようなライブラリを使用しないのはなぜ

<iframe frameborder="0" name="app_frame" id="app_frame" src="site/apps.html" width="0%" height="100%" scrolling="no"></iframe> 

An article pointing out this quirk in IE

MSDN's doc on getElementById states it returns names or id

+0

IEが動作するという事実IE8のベスト・スタンダード・モードで修正されました – Quentin

+0

IEの驚異的な不思議とそれらの_ "standarts" _ – Rafael

+0

@Quentin彼らによると、これはバグではありません。 (http://msdn.microsoft.com/en-us/library/ms536437%28v=vs.85%29.aspx) –

関連する問題