IE上でローカルページ内のFlashやJavaScriptに警告が出る場合の対策
いらっしゃい。ここは武器屋だ。
じゃなくて、、Internet Explorer SP2以降から採用されたスクリプト実行のセキュリティー対策のせいで、JavaScriptを使ってFlash(swf)を埋め込んだWebページで警告が出てしまう場合の対策について説明します。
IE7でも出てますから、この先ずっと採用されていくのでしょうかねぇ…
Mark of the Web (MOTW) を埋め込みましょう
いきなり結論ですが、Mark of the Web(MOTW)コードをWebページ内に埋め込みます。 以下の記述をDOCTYPE宣言の下に追加してください。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- saved from url=(0014)about:internet --> <html xmlns="http://www.w3.org/1999/xhtml">
ただし、ここで重要なルールがあります。
改行はCR+LFで
ええっ!?と思われたかもしれませんが、MSDNのページに書いてあります。 実際、UTF-8やEUC-JPなどの文字コードを使って改行コードをLFのみにしたりしている場合は当然無効になってしまいます。
Note The HTML comment must be properly formatted for Internet Explorer to parse the information correctly. Proper format includes inserting a space immediately following the opening delimiter ” <!– ” and just before the closing delimiter ” –> “. The line must end in CR LF. Some HTML editors only insert a LF.
ちなみにその対象の改行コードはMOTWの末尾のみでも良いです。
<!-- saved from url=(0014)about:internet -->(ここの改行だけCR+LF)
<html xmlns="http://www.w3.org/1999/xhtml">
DreamweaverでMark of the Webコードを埋め込み
ではこれまでのルールに従って、Dreamweaverで埋め込んでみます。 使用バージョンはCS3です。
まずhtmlファイルのほうですが、最近ではUTF-8の文字コードが一般的ですから、htmlファイルもUTF-8で記述してあります。
次に、「編集」→「環境設定…」メニューを選んで「コードフォーマット」を選択し、改行コードを「CR LF (Windows)」にしてください。
次に、「コマンド」→「Mark of the Web の挿入」を選択します。
無事挿入されました。
最後に環境設定の改行コードを元に戻しておきましょう。
まとめ
htmlファイルの改行コードがCR+LFで統一されている場合はいいのですが、このようにLFのみやCRのみなっている場合は別の改行コードを入れることになってしまいますので、ローカルでのテスト用と考えて挿入するのが良いと思います。 正式なアップロード時には「コマンド」→「Mark of the Web の削除」を選択して削除しておくと良いでしょう。
2008-09-15