2012-02-15 9 views
0

まだ使用している古いシステムで問題を解決する必要があります。私は新しいシステムをjqueryに変換することに忙しかったが、古いシステムのこれらのナゲットがポップアップすることがある。旧式のjavascriptがChromeとIEで動作しない

下記のコードはFirefoxでうまくいきますが、ChromeやIEでは動作しません。

console.log( "test")を追加しました。これはFirefoxで実行されますが、ChromeやIEでは実行されません。

私はバニラのjavascriptでこれを行うための最善の方法を教えてください。あるおかげ

コード

function showlaptop(theTable) 
{ 
    if (document.getElementById(theTable).style.display == 'none') 
    { 
     document.getElementById(theTable).style.display = 'block'; 
     console.log("test"); 
    } 
} 

function hidelaptop(theTable) 
{ 
    if (document.getElementById(theTable).style.display == 'none') 
    { 
     document.getElementById(theTable).style.display = 'none'; 
    } 
    else 
    { 
     document.getElementById(theTable).style.display = 'none'; 
    } 
} 
+4

エラーは、提供したコードスニペットには表示されません。 。 – xandercoded

+2

どのようなエラーが表示されますか?おそらく値が 'theTable'のために渡されています。これはページ上にidとして存在しません。 – gilly3

+0

コードを実行する前にChromeを開いてコンソールを開くとエラーが表示されますか? (Ctrl-shift-J)また、 'hidelaptop()'関数はifとelseブランチで同じことをしています。 – nnnnnn

答えて

1

これは、すべてのブラウザで動作するはずです...

function showlaptop(theTable) 
{ 
    if (document.getElementById(theTable).style.display == 'none') 
    { 
     document.getElementById(theTable).style.display = ''; 
     console.log("test"); 
    } 
} 

function hidelaptop(theTable) 
{ 
    if (document.getElementById(theTable).style.display == '') 
    { 
     document.getElementById(theTable).style.display = 'none'; 
    } 
    else 
    { 
     document.getElementById(theTable).style.display = 'none'; 
    } 
} 

、あなたが他のBTW秒を必要としない''

'block'を置き換えます.. 。

UPDATE :

コメントの中でRobが述べたように。すべてのデフォルトの表示値は'block'ではありませんが、一部のブラウザでは許可されていますが、標準に準拠しているブラウザではページがレンダリングされません。

+1

明示的に 'display'を' block'に設定することに失敗する特別な理由はありますか?私はそれがデフォルトであることを覚えているようだが、それを完全に述べることは決して問題ではない。 – ssube

+0

テーブル要素の[デフォルトの表示値](http://www.w3.org/TR/CSS2/sample.html)は 'table'であり、' block'ではありません。ただし、一部のブラウザでは標準値をサポートしていないため、エラーは表示されませんが、標準に準拠しているブラウザは表示されません。 – RobG

関連する問題