WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:OperaのDHTMLについて

0:[投稿] 中根 [MAIL] [URL] [2002/03/03 12:07 ][環境:WIN+OTHER UNIX系+Perl]

こんにちは、中根です。

http://pc-information.com/document/0664.html
http://pc-information.com/

で使用しているDHTMLによるメニューですが、
MSIEとNetscape6.xでは正常に動くのですが、
Operaでは正常に動きません。

まず、Operaを「Operaとして認識させる」設定では
Error:
name: TypeError
message: Value on left hand side of '.' is not convertible to Object: el
というエラーが出てしまい、「MSIE5.0として認識させる」設定では
正常に動作します。

また、前者(0664.html)では、レイアウトが崩れてしまいます。
(MSIEとNetscapeは正常)
前者はローカルでテストしたところ、JavaScriptを有効にしていると
崩れるようだったので、submenu.jsを全てコメントアウトしてみましたが
改善しませんでした。

アドバイスをください。


1:[回答] ひよこ [2002/03/03 21:19 ]

>「MSIE5.0として認識させる」設定では正常に動作します。
上記スクリプトのプロパティの中で、srcElementとclassNameは、OperaではJScriptとしてサポートされています。ですから、UAをMSIEとした場合に動作するようです。
http://www.opera.com/docs/specs/js/

細かな検証はしていませんが、el = window.event.srcElement;を
el = window.event.target;
などとするとelはとりあえずURLを取得できます。
問題はclassNameですが、取得方法は思いつきません(^^;
IDだったら el.id で取得できるので、この辺をどうか応用するとか・・・


2:[回答] . [2002/03/03 21:54 ]

el.getAttribute("class")


3:[回答] ひよこ [2002/03/03 22:16 ]

>>2
.さん(どっとさん?)、ありがとうございます。
私も勉強になりました。
el.getAttribute("class") で動作確認できました。>>中根さん
ただし、Operaの場合だけを振り分ける必要が有ります。

>>0
>また、前者(0664.html)では、レイアウトが崩れてしまいます。(MSIEとNetscapeは正常)
これは広告バナーのせいでしょうね。
広告バナーのスクリプトを最後(</body>の直前)に移動すれば、レイアウトは崩れません。
ただ、本文と重なるのでじゃまですが・・・


4:[回答] 中根 [MAIL] [URL] [2002/03/03 22:47 ]

こんにちは、中根です。
お返事ありがとうございます。

早速、submenu.jsを修正してみたところ、
Operaモードでも正常に動作するようになりました。
まさか、「MSIEモード」と「Operaモード」で使える
JavaScriptに違いが出るとは思いませんでした。
(Browserの識別名が変わるだけだと思っていました)
ちゃんとドキュメント読まないとダメですね。反省しております。

一方、レイアウト崩れの件ですが、ValueClickさんから
(以前HTML4.01対応関係でサポートにメールを出したときに)若干のコード変更はかまわないという回答をもらっています。
ValueClickサーバー上にあるスクリプトが犯人だとすると
サポートにメールを出すしかありませんが、
なんとかならないでしょうか。

よろしくお願いします。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World