SQLの窓 イラストAC フリー素材

2014年11月03日

親(parent) フレームに jQuery が無い場合に jQuery をインストールする。

通常はこのような手順は必要無いのですが、ブックマークレットを使ってページ内のセキュリティの制限なしに IFRAME を追加作成して、元のページのアクセスに jQuery を使いたい場合です。

任意のページに追加機能(ページをリロードすると失われます)を付け加えたい場合、ブックマークレットを使用しますが、ブックマークレットの中に書けるコード量はかなり制限があるので、ブックマークレットから iframe を about:blank で作成して、その中にスクリプトを外部から読み込んで(http ページからは http、https からは https である必要があります)利用します。
※ 実際は iframe 内の document に対して スクリプト要素を document.write します

画面作成は、読み込まれた外部 JavaScript 内で作成します。画面作成は、JavaScript(DOM) のみでも可能ですが、一般的にクロスブラウジングの必要の無い HTML コードを iframe 内で document.write して作成します。
※ HTML を document.write したほうが画面定義としての可読性が良くなります

しかし、親ページに対して加工を加える場合は、DOM を使う必要があります。( document.write は、ページロード時にしか使用できません )

よって、親ページに対する jQuery のインストールは、以下のようなコードになります
<script type="text/javascript">
if ( !parent.jQuery ) {
	(function() {
		var x = parent.document.createElement("script");
		x.setAttribute( "src", "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" );
		parent.document.body.appendChild( x );
	})();
}
</script>

※ 無名関数を使っているのは、x という変数をグローバルに定義しない為です。

関連する記事

手ブロのハートデータの左上 16x16 ぶんを Galleria でハート送信できるブックマークレット


ブックマークレットから、ページ中央に固定する IFRAME ウインドウを作成する



【jQueryの最新記事】
posted by at 2014-11-03 23:22 | jQuery | このブログの読者になる | 更新情報をチェックする