コメント |
@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
|