IE上でローカルページ内のFlashやJavaScriptに警告が出る場合の対策
presented by 役に立つかもしれないBlog
いらっしゃい。 ここは武器屋だ。 じゃなくて、、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 の削除」を選択して削除しておくと良いでしょう。
このページに関連のある記事はこちら
- SeleniumでjQueryを利用する
- JavaScriptでDATETIME型の日付を得る方法
- JavaScriptで全角数字を半角数字に変換する方法(おまけつき)
- tableにjQueryのtoggleを使うと幅が100%に広がらない件
- JavaScript+Prototype.jsで右クリックメニューが作れる「Proto.Menu」
- jQueryでbit.lyと連携。短縮URLをTwitterに投稿してもらう方法
- JavaScriptで日付から「第○曜日」(何番目の曜日か)を調べる方法
- PhoneGapとAppleデベロッパーライセンスの同意事項について
- clickイベントが効かない人への処方箋(iPhone&jQuery)
- HTML5サイトを作らずにはいられない。「HTML5&API入門」
- リンクをクリックさせる前にJavaScript:confirmで確認する時の注意


