• ベストアンサー

JavaScript使用禁止でonMouseを使ったら・・・

利用中のショッピングサイト作成のエディタはJavaScriptやCSSが使用禁止となっていて、META HTTP-EQUIV="とか<SCRIPT LANGUAGE="JavaScript">などの宣言をしないでonMouseoverやonMouseoutを使っています。 テストしたところ、IEやNetscapeで正常に表示されているようですが、何か不具合があるでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

すべてのブラウザで動作するという保証はないでしょう。 また、動作テストを行ったブラウザであっても、バージョンによって動作しないものもあるかもしれません。 最近のブラウザであれば、大抵動作しそうなものですが、意図しない動作をしてもおかしくないことを肝に銘じておくべきだと思います。 なお、世界で普及しているブラウザの動作テストとして、IE・Netscape だけでは不足でしょう。Opera や念のため、Firefox などでも動作テストすべきですし、IE 5.x も環境によっては現役ですので注意が必要です。 また、携帯電話でのアクセスも検討している場合はさらに注意が必要になりそうです。

その他の回答 (2)

回答No.3

それはそうと、スクリプト禁止なんだからイベント属性も禁止なのでは? 禁止されている物を使おうとすることに問題があるんじゃないですかね?

回答No.2

<meta http-equiv="Content-Script-Type" content="text/javascript"> IEやFxなどはこれに対応していません。 文法上は書いた方がよいとなっていますが、 現状では<meta>などが書かれていなくても全く問題ないと思います。 (メジャーなブラウザでさえ対応していないので、マイナーなブラウザを考えてもあまり意味はないと思います。) ただし、javascript以外の言語を使う場合は、scriptタグにlanguageかtype属性を書いた方がよいと思います。 onmouseoverでエラーが出るか、ページを読み込んだときにエラーが出るかの違いだけですけどね。 <meta http-equiv="Content-Script-Type" content="text/vbscript"> <script type="text/vbscript"> sub Func(){ MsgBox "hello" endsub </script> <input type="button" onclick="Func();"> VBScriptに対応していないブラウザでは、 <meta>でvbscriptを指定しているので、イベント属性を無視すべきだと思いますが、 Fxなどではjavascriptと解釈し、Funcが定義されてないというエラーになります。 (Fx1.5だったか1.0だったかはテストしたんですが、2.0や最新のバージョンで直ってるかもしれません。) <script type="text/vbscript"> sub Func(){ MsgBox "hello" endsub </script> <script type="text/javascript"> function Func(){ alert("javascript"); } </script> <input type="button" onclick="Func();"> VBScriptだけ書いている場合は、IEでは問題なくVBScriptで書かれたFuncが呼び出されますが、 VBScriptとJavaScriptの2つを書いていると、最後に書かれたJavaScriptのFuncが呼び出されます。(<meta>によるVBScriptの指定が無視されます) (同様に、IE7の最新バージョンではテストしていません) 余談ですが、この場合は<meta>ではなく<script type="text/VBScript">を最後に書くことで、ブラウザごとの分岐が出来ます。

関連するQ&A

  • META タグでページをリフレッシュさせると JavaScript の関数が呼べません

    【環境】 WindowsNT、IE5.50 HTML の META タグを使用して、60秒ごとにページをリフレッシュさせたいのですが、以下のように記述すると JavaScript の関数(go_next)を呼ぶことができません。 JavaScript の関数(go_next)を呼ぶには、「<A HREF="JavaScript:go_next(1);">リンク先</A>」と記述しています。 ---------------------------------------------------------------------- <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=shift_jis"> <META HTTP-EQUIV="refresh" CONTENT="60;"> <TITLE></TITLE> <BASE TARGET="_self"> <SCRIPT LANGUAGE="JavaScript"> <!-- function go_next(fm) {    ~(略)~ } // --> </SCRIPT> </HEAD>    ~(略)~ ---------------------------------------------------------------------- JavaScript でも、関数でなければ使用できるのですが・・・。 何かよい方法はありませんか? よろしくお願いします。

  • このソースどういう意味ですか【JavaScript】

    <HTML> <HEAD> <TITLE>JavaScript Sample</TITLE> <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> </HEAD> <BODY> : <INPUT TYPE="button" VALUE="OK" onClick="~"> : </BODY> </HTML> このソースの中の <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> の部分ってどういう意味ですか? 特にTypeとHTTP-EQUIVの部分については個別で詳しく知りたいです。 回答よろしくお願いします。

  • meta css javascript 必要性

    charset、keywords、robots、Expire等は わかるのですが、 <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> これは、書くことが推奨されるとなっています。 サーバー、ブラウザ間では このタグによって どのような事が おこなわれてるのでしょうか。 サーバー側から css、javascript使ってますよーと ブラウザに情報を わたす? しかし、タグ自体は サーバー関係あるのだろうか?と、大混乱中。 javascriptの場合、onClick= は javascriptですよーとの宣言との事。 これを指定しなくてもうまくいきますが、ブラウザはなにかわからんけど、javascriptだろうと 勝手に解釈してるということでしょうか。 ちょっと おかしな想像ですが 迷う事はないのでしょうか?  →ブラウザ側での表示までに無駄な考える事を増やしてる?    (相当、小さなものだと思いますが。。) meta javascript と meta css が なぜ 推奨となってるのか、 書く事の メリット デメリット? が あれば 意見欲しいです。

    • ベストアンサー
    • HTML
  • ファイヤーフォックスでCSSが読み込まれません

    会社のホームページを担当していて困っています。 IEでは、きちんと表示されるのですが ファイヤーフォックスですとCSSを認識してくれないようです。 下記が自分会社のソースです。 何が悪いのでしょうか? よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <title></title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/JavaScript"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <SCRIPT language=javascript src="js/libs.js" type=text/javascript></SCRIPT> <meta name="ROBOTS" content="ALL"> <<link href="css/stylesheet.css" rel="stylesheet" type="text/css" media="all"> </head>

  • ファイヤーフォックスでCSSが機能しません

    会社のホームページを担当していて困っています。 IEでは、きちんと表示されるのですが ファイヤーフォックスですとCSSを認識してくれないようです。 下記が自分会社のソースです。 何が悪いのでしょうか? よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <title></title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/JavaScript"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <SCRIPT language=javascript src="js/libs.js" type=text/javascript></SCRIPT> <meta name="ROBOTS" content="ALL"> <<link href="css/stylesheet.css" rel="stylesheet" type="text/css" media="all"> </head>

  • JavaScriptのオン/オフの使い分け

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="refresh" content="3;url=jtestOFF.html"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>JavaScriptのオン/オフ状態に応じて表示するページを変える</title> <script Language="JavaScript"> <!-- location.href = "jtestON.html"; // --> </script> </head> <body> しばらく、お待ちください。 </body> </html> 上記タグは某サイトの例文をコピペしたのもです。 http://time3.sakura.ne.jp/sub/QandA/diary/jscheck1.html 正しく動作するのですがJavaScriptがオンの時 ブラウザの「戻る」をクリックしてもページが元のページに戻りません。 何か良いお知恵はないものでしょうか?

  • Javascript 置換について

    ■■Javascript 置換について■■ Javascriptでイベント属性のみを置換することは可能でしょうか? 【やりたいこと】 htmlソースの 「onmouseover」を「onClick」に置換したい。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>sanmple</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS"> <link rel="stylesheet" type="text/css" href="../../../css/left.css"> <script src="../../../../JS/jquery.js" type="text/javascript"></script> <script src="../../../../JS/jquery.cookie.js" type="text/javascript"></script> </head> <body> <map name="ima"> <area shape="rect" coords="10,20,82,156" onmouseover="POP('ここに表示さ せる文章がはいってます')" onmouseout="return NNN()"> <area shape="rect" coords="10,30,100,200" onmouseover="POP('いいいいいい いいいいいいいい')" onmouseout="return NNN()"> </map> </body> </html> 上記のような個別ページが1000ページくらいあります。  ある場所を「onmouseover」したら、POPという関数で説明文が表示される動きを しています。 POPという関数は、 インデックスページに【表示方法1ボタン】【表示方法2ボタン】があり、 押したボタンによって個別ページの表示方法を変更させるために関数を振り分けている。 (インデックスページでフラグをたてる処理をしている。) function POP(obj){ var text =$.cookie('flag'); //表示方法1 if ( text == "n"){ over(obj); } //表示方法2 else if( text == "k"){  top(obj); } else { return false; } } というような動きをしていますが、 今回 「//表示方法2」の時に、イベントハンドラを 「onmouseover」から「onClick」に変更したい。 POP関数部分はそのままにしたい。      ↓ POP('ここに説明文がはいってます')  引数は文章が入っているのでJSに移動したくない。 イメージはこんな感じです。 個別ページを読み込んだとき $(document).ready(function(){ 【表示方法2ボタン】のフラグだったら area の onmouseover を onClick に変更 }); なにか簡単な置換方法はありませんでしょうか? replaceで置換できませんでした。(string部分じゃないから?) document.body.innerHTML=document.body.innerHTML.replace(onmouseover,onclick); 何かご存じの方がいらっしゃいましたら、教えて頂けないでしょうか。 よろしくお願い致します。

  • javascriptでリンク元の規制

    詳しくコピーするので、長文になることをお許し下さい。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML LANG="ja"> <HEAD> <META HTTP-EQUIV="content-type" CONTENT="text/ html;charset=SHIFT_JIS"> <META HTTP-EQUIV="content-style-type" CONTENT=" text/css"> <META NAME="robots" CONTENT="NONE"> <META NAME="content-language" CONTENT="ja"> <META NAME="build" CONTENT="2004.05.25"> <TITLE>初めに…</TITLE> </HEAD> <BODY> <script type="text/javascript"> <!-- refurl = document.referrer if( refurl != "http://www.zzz/~yyy/xxx.html" ) { alert("ここは入り口ではありません"); history.back(); } //--> </script> <noscript>  Javascriptが無効です。Javascriptを有効にして<br> やり直して下さい。<br>  解らなければ、mosomoso8まで。<br> <meta http-equiv="refresh" content="http://www.zzz/~xxx/uuu.html"></noscript> 123456789 </body> </html> ※uuu、xxx、yyy、zzzは、仮の文字です。 ↑こんなソースなのですが、『http://www.zzz/~yyy/xxx.html』からリンクしても、アラートが出てしまい123456789の文字が見れません。 このソースの間違いがわかる方、どうか教えて下さい。 かれこれ、もう1ヶ月も悩んでいます。 最初、『http://www.zzz/~yyy/xxx.html』からURLを直接入力してジャンプするのが原因かと思い、その後テストの為上記のページからリンクを張ってみたのですが、それでもアラート表示が出て、弾かれます。 どなたか、どうかお助け下さい。

  • JavaScript document.write 「更新」すると動作しない

    JavaScriptを組み込んだサイトを作成しました。 自宅には2台PCがあり、パソコンAのブラウザーはFirefox3.5.3とIE7。 パソコンBのブラウザーはFirefox3.0.13とIE6.02900.5512 xpsp sp3です。 パソコンBのブラウザーで動かすとJavaScriptが正常に動きます。 更新ボタンを押しても正常です。 一方、パソコンAでは、一番最初にPCを起動してブラウザを立ち上げた時は正常に動作しますが、「更新」をすると、下記プログラムの <SCRIPT LANGUAGE=JavaScript1.2>document.write(ABC);</script> のdocument.write(ABC)を読み込んでくれなくなります。 ※下記の例で説明すると「あいうえお」という表示が出なくなります。 なお、document.write(ABC)のABCは、<SCRIPT SRC="http://XXXXXX.XXXX/XXXXX/XXXX.js"></SCRIPT>に格納してあります。(下記参照) 何が原因かご教示いただけますでしょうか? m(_ _)m よろしくお願い致します。 ------------------------------------------------ ◆本文 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> <SCRIPT src="http://XXXXXX.XXXX/XXXXX/XXXX.js"></SCRIPT> </HEAD> <BODY><SCRIPT language="javascript">document.write(ABC);</SCRIPT></BODY> </HTML> ------------------------------------------------ ◆http://XXXXXX.XXXX/XXXXX/XXXX.js の中身 var ABC=' <b>あいうえお</b>';

  • ホームページのヘッダ部分について

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML LANG="JA"> <HEAD> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=Shift_JIS"> <META HTTP-EQUIV="CONTENT-STYLE-TYPE" CONTENT="text/css"> <META HTTP-EQUIV="CONTENT-SCRIPT-TYPE" CONTENT="text/javascript"> <TITLE>○○○○</TITLE> <LINK REL="STYLESHEET" TYPE="text/css" HREF="css1.css"> <meta name="keywords" content="△,△,△,△,,△,△,"> <meta name="description" content="●●●●●"> </HEAD> <BODY> … となっているのですが、無駄な部分はありますか? 順番などは合ってますか? また、こうしたほうがいい、などとアドバイスがあればぜひよろしくお願いいたします。

専門家に質問してみよう