※ ChatGPTを利用し、要約された質問です(原文:★★★メタ文字変換後、swfのロードに失敗する件)
メタ文字変換後、swfのロードに失敗する件
このQ&Aのポイント
質問文章中の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"&& 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チェッカーにて診断した所『メタ文字(例`>` は `>` )』は変換した方が正式な書き方だと言う事が判りました。
http://www.esitenet.com/htmllint/htmllint.html
しかし、この基準に沿って全ての『メタ文字』を変換した所、今まで正常に再生されていたswfは再生されなくなり、『dateIDは宣言されていません』とエラーが返って来る様になりました。
W3Cチェッカー上での正式な書き方としての点数は上がりましたが、この問題をバランス良く解決するにはどうすれば良いか困惑しております。
上記の問題点がお判りの方がいらっしゃいましたら、是非とも対処方法をご教授願いたく投稿させて頂きます。
大変お手数ですが、何卒よろしくお願い致します。
お礼
think49様 お世話になります。非常にご丁寧なご回答を頂きまして、 誠に有難う御座いました!! な…なるほど…!外部jsにしてしまえば良かったのですね! 恐ろしい程簡単に一発解決が出来て非常に興奮しております! think49様のご助言、本当に助かりました…有難う御座います>< お蔭様でHTML上はチェックは満点で、当方の意図する動作も可能でした!大満足な結果が得られて嬉しく思います/// ただ、素朴な疑問なのですが、W3Cが定める所と言うのはあくまでもHTML上の文法だけで有って、外部に読み込ませるjsファイル等は特に問題視していないと言う解釈なのでしょうかね…。 外部jsのメタ文字はそのままだと問題有りませんが、うっかり変換してしまうと同じエラーが発生してswfは読み込めませんでした。 となると、原文のまま外部jsにしておいて、そのメタ文字は別に気にする事はないのでしょうかね…。 とにかく本当に助かりました!有難う御座いました! 今後もご承知置きの情報が御座いましたら、ご回答頂戴出来ますと幸いです。本当に有難う御座いました(土下座)