メタ文字変換後、swfのロードに失敗する件

このQ&Aのポイント
  • 質問文章中のswfファイルのロードに失敗する問題について相談させてください。
  • 質問文章中のソースコードによるswfファイルの読み込みに関する問題が発生しています。
  • swfファイルのメタ文字を変換した後、正常に再生できなくなりました。この問題の解決方法を教えてください。
回答を見る
  • ベストアンサー

★★★メタ文字変換後、swfのロードに失敗する件

【OS】Windws XP HomeEdition 【ブラウザ】InternetExplorer7 ご覧頂きまして誠に有難う御座います。 皆様のお知恵を貸して頂ければ幸いです。 現在、下記ソースで『a.swf』ファイルを読み込む様にWEBページの制作をしております。 【参考ソース】 <?xml version="1.0" encoding="shift_jis"?> <!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"> <head> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <link rev="MADE" href="mailto:★" /> <script type="text/javascript" src="swfLoad.js"></script> <title>★★★</title> <link rel="index" href="./index.html" /> <link rel="MAIN" href="./main.html" /> <script type="text/javascript"> function getOsName() { var osName = navigator.userAgent.toUpperCase(); var rtn; if(osName.indexOf("WIN") >= 0) { rtn = "Win"; } else if(osName.indexOf("MAC") >= 0) { rtn = "Mac"; } return rtn; } function getBrowserName() { var ua = navigator.userAgent.toUpperCase(); var rtn = ""; if (ua.indexOf("MSIE") >= 0){ rtn = "Explorer"; } else if (ua.indexOf("FIREFOX") >= 0) { rtn = "FireFox"; } else if (ua.indexOf("NETSCAPE") >= 0) { rtn = "Netscape"; } else if (ua.indexOf("SAFARI") >= 0) { rtn = "Safari"; } else if (ua.indexOf("OPERA") >= 0) { rtn = "Opera"; } return rtn; } var dataID; var osVersion; var w = screen.width; var h = screen.height; if(getOsName()=="Mac"){ h-=30; } if(!(getOsName()=="Win"&amp;&amp; getBrowserName()=="Explorer")){ moveTo(0,0); resizeTo(w,h); } if(getOsName()=="Mac"&&(getBrowserName()=="FireFox"||getBrowserName()=="Safari")){ osVersion = 0; }else{ osVersion = 1; } if(w<1280){ dataID = 1; }else if(w<1600){ dataID = 2; }else{ dataID = 3; } function mailto(str){ location.href="mailto:?subject=URL???N?G?X?g&body="+parseURL(str); } function parseURL(url){ var rc = "%0D%0A"; var rtn = ""; var index = 0; for(var i=0;i<30;i++){ index = url.indexOf(","); if(index == -1){ break; } rtn += url.substr(0,index); rtn += rc; url = url.substr(index+1); } rtn+=url; return rtn; } </script> <style type="text/css"> body { margin:0px; padding:0px; background-color:#ffffff; overflow:hidden; } </style> </head> <body> <script type="text/javascript"> swfLoad(); </script> </body> </html> この状態だと当方の意向に沿ったswfの再生が可能なのですが、 W3Cチェッカーにて診断した所『メタ文字(例`>` は `&gt;` )』は変換した方が正式な書き方だと言う事が判りました。 http://www.esitenet.com/htmllint/htmllint.html しかし、この基準に沿って全ての『メタ文字』を変換した所、今まで正常に再生されていたswfは再生されなくなり、『dateIDは宣言されていません』とエラーが返って来る様になりました。 W3Cチェッカー上での正式な書き方としての点数は上がりましたが、この問題をバランス良く解決するにはどうすれば良いか困惑しております。 上記の問題点がお判りの方がいらっしゃいましたら、是非とも対処方法をご教授願いたく投稿させて頂きます。 大変お手数ですが、何卒よろしくお願い致します。

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

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.1

> W3Cチェッカーにて診断した所『メタ文字(例`>` は `&gt;` )』は変換した方が正式な書き方だと言う事が判りました。 外部JavaScriptにして回避する方法が一般的だと思います。 <SCRIPT>~</SCRIPT> 内に `XX` を書くときは外部にスクリプトを用意しましょう。 http://www.esitenet.com/htmllint/explain.html#embedded-in-cdata 調べて知りましたが、マーク区間という手法もあるようです。 でも問題があるようなので、使わない方が良さそうですね。 マーク区間 <![XXXX[ ~ ]]> は、多くのブラウザは理解できません。 http://www.esitenet.com/htmllint/explain.html#marked-section

h-tester
質問者

お礼

think49様 お世話になります。非常にご丁寧なご回答を頂きまして、 誠に有難う御座いました!! な…なるほど…!外部jsにしてしまえば良かったのですね! 恐ろしい程簡単に一発解決が出来て非常に興奮しております! think49様のご助言、本当に助かりました…有難う御座います>< お蔭様でHTML上はチェックは満点で、当方の意図する動作も可能でした!大満足な結果が得られて嬉しく思います/// ただ、素朴な疑問なのですが、W3Cが定める所と言うのはあくまでもHTML上の文法だけで有って、外部に読み込ませるjsファイル等は特に問題視していないと言う解釈なのでしょうかね…。 外部jsのメタ文字はそのままだと問題有りませんが、うっかり変換してしまうと同じエラーが発生してswfは読み込めませんでした。 となると、原文のまま外部jsにしておいて、そのメタ文字は別に気にする事はないのでしょうかね…。 とにかく本当に助かりました!有難う御座いました! 今後もご承知置きの情報が御座いましたら、ご回答頂戴出来ますと幸いです。本当に有難う御座いました(土下座)

その他の回答 (1)

  • think49
  • ベストアンサー率59% (285/482)
回答No.2

#1です。 > ただ、素朴な疑問なのですが、W3Cが定める所と言うのはあくまでもHTML上の文法だけで有って、外部に読み込ませるjsファイル等は特に問題視していないと言う解釈なのでしょうかね…。 そうですね。 jsファイルはJavaScriptでしかありませんので、JavaScriptの文法だけに準拠します。 HTML文書でJavaScriptコードが定義されている場合はHTMLでもあるので、HTMLに準拠した記述にする必要があります。 あと、おそらく勘違いされていると思うのですが、ご質問中のチェッカーはW3Cとは全く関係ない個人サイトで作成されたCGIのコピーです。 オリジナルは下記URLにあります。 Another HTML-lint gateway http://htmllint.itc.keio.ac.jp/htmllint/htmllint.html リンク先にあるように「HTML文書の文法をチェックし、採点します」 JavaScriptの文法はチェックしません。

h-tester
質問者

お礼

think49様 お世話になります。この度はご丁寧に有難う御座いました! そうなんですか…そもそもチェッカー自体間違ってましたか;;; 何ともお恥ずかしい…早速参照URLにて試させて頂きたいと思います★ HTML/JavaScriptの文法に関しては全くの別物としてチェックされる旨良く理解出来ました!本当にご親切に有難う御座います>< 今はFLASHのサイズ改変で悩みまくっておりますので、 また博識なご回答者様に期待して新しい質問でも投稿してみます! 少しずつ勉強させて頂きます^^think49様本当に有難う御座います!

関連するQ&A

  • 時間ごとに異なるページを表示させたい

    今、ホームページを作成しています。 朝、夜で違うページを表示させたいのですが、どうしてもうまくいきません。 記述したタグを書きますので、どなたかアドバイスいただけないでしょうか? ●朝(7時~17時)→index.html ●夜(17時~翌朝7時)→index2.html 上記の時間帯で、異なるページを表示したいです。 あと、初心者なのでこんな事をお尋ねして申し訳ないのですが、指示する Javascriptは、index.htmlだけのscriptsタグ内に記述するものでしょうか? それとも、index2.htmlにも記述するべきですか? いろいろ検索して試してみましたが、どうしてもうまくいきませんでした。 アドバイスよろしくお願いします。 *************************************************************** <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja" xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>ああああああ</title> <meta http-equiv="refresh" content="5;URL=http://www.aaa.co.jp/top.html"> <meta name="robots" content="all" /> <meta name="keywords" content="ああ,いい" /> <meta name="description" content="ううえええおお。" /> <meta http-equiv="content-script-type" content="text/javascript" /> <meta http-equiv="content-style-type" content="text/css" /> <meta http-equiv="imagetoolbar" content="no" /> <link href="common/text.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-- .style2 { font-family: "MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3"; font-size: 10; } --> </style> <script language = "JavaScript"> <!-- Begin ------------------- var d=new Date(); var h=d.getHours(); if(h>=0) { if(h<7) { location = "http://www.aaa.co.jp/index2.htm";} else{ if(h<17) { location = "http://www.aaa.co.jp/index.htm";} else{ if(h<23) { location = "http://www.aaa.co.jp/index2.htm";} }}}}}}}}}}}}}}}}}}}}}} } // -- End -------------- --> </script></head>

  • XHTML meta属性 文字化け

    XHTMLを勉強しています。 以下のように記述して表示すると タイトルの部分が文字化けします。 何故でしょうか <?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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>ホームページの作り方</title> <meta name="description" content="初心者のためのホームページテスト" /> <meta name="keywords" content="ホームページ,作成,初心者" /> </head> <body> テスト </body> </html>

    • ベストアンサー
    • HTML
  • PHPを埋め込んだのに・・・

    <?php $UA = $_SERVER{'HTTP_USER_AGENT'}; if (substr_count($UA,"DoCoMo")) { header("Location: http://tyaku-uta.s140.xrea.com/imode/index.html"); } else if (substr_count($UA,"J-PHONE")) { header("Location: http://www.abcde.com/jphone.html"); } else if (substr_count($UA,"UP.Browser")) { header("Location: http://www.abcde.com/au.html"); } ?> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 8.0.0.0 for Windows"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> ・ ・ ・ </BODY> </HTML> これで、UAで振り分けようと思ったのですが、うまく作動してくれません。是非、教えて頂けないでしょうか?

    • ベストアンサー
    • PHP
  • これをOperaでも動くようにしたい

    http://programming-magic.com/?id=158 こちらの function(){ var l = document.getElementsByTagName("A"); for(var i=0; i<l.length; i++){ var a = l[i]; if(a.href.indexOf('javascript:',0)){ var e = /*@cc_on!@*/0; if(e){//IE専用 a.href = 'javascript: (function(){location.href = "'+a.href+'";})();'; } else{//Firefox、Opera、Safari a.href = 'data:text/html;charset=utf-8,'+encodeURIComponent('<script type="text/javascript"><!--\ndocument.write(\'<meta http-equiv="refresh" content="0;url='+a.href+'">\');// --><'+'/script>'); } } } } を、Operaでも動くようにできませんでしょうか

  • 【JS】ブラウザバージョン別分岐がうまくいかない

    UAを使いバージョン別にブラウザを分岐させたいのですが、 『xx以上oo未満』がうまくいきません。 シンタックスはないのですが、 どのような式にしたらいいでしょうか。 script http://the-design-world.com/test/jquery.viewmodechanger.js 該当部分 ... }else if(ua.indexOf("Firefox")>-1){ if(ua.indexOf("Firefox >= 3.5")>-1){ c = 3; }else if((ua.indexOf("Firefox <= 3.6")>-1) && (ua.indexOf("Firefox > 4")>-1)){ c = opt.firefox36; }else if(ua.indexOf("Firefox <= 4")>-1){ c = opt.firefox4upper; }else { c = 1; } ... どなたかご助力いただけますでしょうか。

  • XHTMLとJavascript・CSSで表示位置の固定方法について

    HTMLからXHTMLへソースをそのままで移行したら位置の固定がされなくなりました。 <div id="msg">message</div>の部分をスクロールしても常に同じ場所に表示したいです。 XHTMLの知識が殆どなく、原因が判りません。 Javascriptを別ファイルにしても動きませんでした。 修正方法、もしくは代替案をお願いします。 宜しくお願いいたします <!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" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="content-script-type" content="text/javascript" /> <script type="text/javascript"> var offX = 0; var offY = 0; function setMenu(){ if(document.all){ var mx = parseInt(document.body.scrollLeft+offX); var my = parseInt(document.body.scrollTop+offY); } else { var mx = parseInt(self.pageXOffset+offX); var my = parseInt(self.pageYOffset+offY); } if(document.getElementById){ document.getElementById('msg').style.left=mx; document.getElementById('msg').style.top=my; }else if(document.all){ document.all('msg').style.pixelLeft=mx; document.all('msg').style.pixelTop=my; }else if(document.layers){ document.layers['msg'].moveTo(mx,my); } } onscroll = setMenu; onresize=setMenu; //--> </script></head> <body bgcolor="#111144"> <div id="msg"> message </div> </body> </html>

  • Safariを判別し別ページに飛ばすには

    javascriptでブラウザを判別して、ブラウザによって違うページに飛ばしています。 基本的にはIEとそれ以外なのですが、Safariだけが別ページに飛んでくれません。(index.htmlにいたままになる) 下記のようにしていますが、どうすれば飛ぶようになるでしょうか? よろしくお願いします。 <script type="text/javascript"> if(navigator.userAgent.indexOf("MSIE") != -1){ window.location.href = "index.html";}     : else if(navigator.userAgent.indexOf("safari") != -1){ window.location.href = "index2.html";} </script>

  • ひとつのHTMLファイル内にcanvasでグラフを2つ表示したいのです

    ひとつのHTMLファイル内にcanvasでグラフを2つ表示したいのですが 表示できなくて困っています。 以下のサイトを参考に、それぞれ1つのファイルに1つのグラフを表示はできました。 http://www.html5.jp/library/index.html また、グラフを上下入れ替えると後に書いたほうが有効になるようです。 どうしたら表示できるようになるか、わかる方アドバイスをお願いします。 以下headタグ以降をそのまま引用です。 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Language" content="ja"/> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>グラフ</title> <link href="sample_graph.css" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="rendering-mode.js"></script> <!--[if IE]><script type="text/javascript" src="./html5jp/excanvas/excanvas.js"></script><![endif]--> <script type="text/javascript" src="./html5jp/graph/circle.js"></script> <script type="text/javascript" src="./html5jp/graph/radar.js"></script> <script type="text/javascript"> window.onload = function() { var rc = new html5jp.graph.radar("sample_radar"); if( ! rc ) { return; } var items_radar = [ ["商品A", 3, 3, 2, 3, 1] ]; var params_radar = { aCap: ["A", "B","C", "D", "E"], aMax: 3, aMin: 0, legend: false } ; rc.draw(items_radar, params_radar); }; </script> <script type="text/javascript"> window.onload = function(){ var cg = new html5jp.graph.circle("sample_circle"); if( ! cg ) { return; } var items1 = [ ["A", 9, ], ["B", 3, ], ["C", 0,] ]; cg.draw(items1); }; </script> </head> <body> <div><canvas width="300" height="200" id="sample_radar"></canvas></div> <div><canvas width="300" height="200" id="sample_circle"></canvas></div> </body> </html>

  • どこが動作しない原因かわかりません><

    なぜに動かないかわかりません・・・ ずっとチェックしているのですがどうも動かず>< 下に打ち込んだものを記載します><アドバイス是非お願いします>< ----------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>sample</title> <script type ="text/javascript"> <!-- var linkExp = new Array("1","2","3","4","5","6"); var now = new Date(); var r = now.getDay(); //--> </script> </head> <body> <script type="text/javascript"> <!--if(r==0){document.write(linkExp[0]);}eles{ if(r==1){document.write(linkExp[1]);}eles{ if(r==2){document.write(linkExp[2]);}eles{ if(r==3){document.write(linkExp[3]);}eles{ if(r==4){document.write(linkExp[4]);}eles{ if(r==5){document.write(linkExp[5]);}eles{ if(r==6){document.write(linkExp[6]);}eles{ document.write("何曜日なの???"); }}}}}}} //--> </script> </body> </html> ---------------------------- というものを打ち込みました。 したいこととしては、曜日情報を取得し、それを特定の情報で置き換えるということをしたいと思っております。

  • グーグルのメタタグ

    FC2のブログにメタタグいれたいんですけど エラーがでます。。 エラーの内容は 「 確認メタ タグがページ内の間違った場所にあります。ページの最初の <HEAD> セクションに挿入してください。」 です。 どこにメタタグをはりつけたらいいかイマイチわかりません。。 テンプレは、全部表示しませんが、こんなかんじです。 どこにメタタグ張ればいいでしょうか? ↓ <?xml version="1.0" encoding="euc-jp"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="ja" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta name="author" content="<%author_name>" /> <meta name="description" content="<%introduction>" /> <meta name="keywords" content="<%blog_name>" /> <script language="JavaScript"><!-- function mySetCookie(myCookie,myValue,myDay){ myExp = new Date(); myExp.setTime(myExp.getTime()+(myDay*24*60*60*1000)); myItem = "@" + myCookie + "=" + escape(myValue) + ";"; myExpires = "expires="+myExp.toGMTString(); document.cookie = myItem + myExpires; } function myGetCookie(myCookie){ myCookie = "@" + myCookie + "="; myValue = ""; myStr = document.cookie + ";" ; myOfst = myStr.indexOf(myCookie); if (myOfst != -1){ myStart = myOfst + myCookie.length; myEnd = myStr.indexOf(";" , myStart); myValue = unescape(myStr.substring(myStart,myEnd)); } return myValue; } // --></script> <script language="JavaScript"><!-- function showMore(varA1, varB1){ var123 = ('varXYZ' + (varA1)); varABC = ('varP' + (varA1)); if( document.getElementById ) { if( document.getElementById(var123).style.display ) { if( varB1 != 0 ) { document.getElementById(var123).style.display = "block"; document.getElementById(varABC).style.display = "none"; } else { document.getElementById(var123).style.display = "none"; document.getElementById(varABC).style.display = "block"; } } else { location.href = varB1; return true; } } else { location.href = varB1; return true; } } // --></script> <title><%sub_title> <%blog_name></title> <link rel="stylesheet" type="text/css" href="<%css_link>" media="screen,tv" title="default" /> <link rel="alternate" type="application/rss+xml" href="<%url>?xml" title="rss" /> <link rel="alternate" type="application/rss+xml" title="ROR" href="sitemaps.xml" /> <link rel="top" href="<%url>" title="トップ" /> <link rel="start" href="<%url>" title="最初の記事" /> <!--preventry--><link rel="prev" href="<%preventry_url>" title="<%preventry_title>" /><!--/preventry--> <!--nextentry--><link rel="next" href="<%nextentry_url>" title="<%nextentry_title>" /><!--/nextentry--> <META name="verify-v1" content="String_we_ask_for"> </head> <body> <div id="outline"> <!--▼▼ ヘッダー ▼▼-->

    • ベストアンサー
    • HTML