<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
を付けると一部ブラウザで動作しません。(macFirefoxなど)
解決方法を教えてください。よろしくお願いします。
flag = false;
function pulldownmenu()
{
if (flag) pdMENU.style.visibility = "hidden"; else pdMENU.style.visibility = "visible";
flag = !flag;
}
[HTML部分]
<a href="javaScript:pulldownmenu()">メニュー</a>
<div id="pdMENU">
<ul>
<li>メニュー01</li>
<li>メニュー02</li>
</ul>
</div>
状況を確認させてください。
XHTML にしたら動かなくなったということですが、コンテンツの冒頭3行は下記のように指定されていますか?(下記は文字セットが日本語UTF-8の場合)
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
スクリプトそのものに汎用性が無いのが気になりますが、とりあえず動作させるだけなら1行追加すれば大丈夫です。
flag = false; function pulldownmenu() { var pdMENU = document.getElementById('pdMENU');//←この行追加 if (flag) pdMENU.style.visibility = "hidden"; else pdMENU.style.visibility = "visible"; flag = !flag; }
なお、古いブラウザ(Netscape4.xとか)では動かなくなりますが、問題ないレベルだと思います。
xml宣言も含めて記載しています。
doc宣言を消去するとFirefoxでも動きます。