ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: 新しく開かれたウインドウのウインドウコントロール
名前: lightbox
処理選択
パスワード

件名 新しく開かれたウインドウのウインドウコントロール
名前 lightbox
コメント
@SHOW
アンカーまたはフォームで [[target 属性]]によってで開かれるウインドウは、そのウインドウを開いたウインドウを @C:red(opener) で知る事ができます。
@END

▼[[target 属性]]によるサンプル
http://lightbox.matrix.jp/ginpro/html/win_control_01.htm

@HTML
▼ textField
<input type="text" name="textField">
<script type="text/javascript">

var openObject = null;

</script>
<input type="button" value="アンカーで開いたウインドウを閉じる" onclick='if( !openObject != null ) { openObject.close(); }'>
@HEND

@SHOW
こちら側では、アンカーで新しく開かれたウインドウを知る事ができないので、変数を用意しておいて、新しく開いたウインドウ側でセットしてもらいます
@END

  [[こちら側の記述]]
@DIV
<input type="text" name="textField">
<script type="text/javascript">

var openObject = null;

</script>
<input type="button" value="アンカーで開いたウインドウを閉じる" onclick="if( !openObject != null ) { openObject.close(); }">
@END

  [[開いたウインドウの記述]]
@DIV
<script>
if ( !window.jQuery ) {
	if ( typeof window[window.location.hostname+'.loadjQuery'] === 'undefined' ) {
		if ( window.addEventListener ) {
			window[window.location.hostname+'.loadjQuery'] = '//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js';
		}
		else {
			window[window.location.hostname+'.loadjQuery'] = '//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js';
		}
	}
	document.write("<"+"script src=\"" + window[window.location.hostname+'.loadjQuery'] + "\"></"+"script>");
}
</script>

<input type="button" value="データをセット" onclick='doAction();'>

<script>
// *********************************************************
// このウインドウを開いたウインドウにアクセス
// *********************************************************
function doAction( strValue ) {

	var opener = window.opener;

	opener.document.getElementsByName("textField")[0].value = "データをセット";

}

// *********************************************************
// ロード時のイベント登録
//
// onload 時に screen オブジェクトが有効にならないので
// タイマーを使用している
// *********************************************************
window.onload = function () {
	// このウインドウを開いたウインドウのグローバル変数に、
	// このウインドウオブジェクトをセット( 向こう側からこちら側にアクセス用 )
	opener.openObject = window;
}

window.onbeforeunload = function() {
	alert("閉じます : onbeforeunload");
}

$(window).bind('beforeunload', function() {
	alert("閉じます : onbeforeunload(jQuery)");
});
</script>
@END