window.openアナログモードウィンドウの効果
2059 ワード
Webソフトウェア開発においては、一つのウィンドウをイジェクトする必要があり、サブウィンドウと親ウィンドウとの間で通信し、子ウィンドウは親ウィンドウをロックすることができる.比較的一般的なのはwindow.show ModalDialog()であり、この方法は多くの制限があり、例えばウィンドウ間の通信が不便で、ieの下でのみ有効である.もしwindow.openの方式を採用するならば、子ウィンドウはまた父の窓をロックすることができません.インターネットでは、父の窓口をレイヤーで遮蔽する例が多いですが、父の窓口を完全にロックできませんでした.考えた結果、ビル主は父のウィンドウをロックしてフォーカスを得ることを阻止する方法を採用しました.父のウィンドウに焦点を合わせると、子ウィンドウにフォーカスを移動します.
コードは以下の通りです
父の窓口のウェブページのparent.html
サブウィンドウのウェブページchild.html
コードは以下の通りです
父の窓口のウェブページのparent.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title> </title>
<script language="javascript">
window.onfocus = function focus(){// window onfocus,
if( typeof(window.childWindow)!="undefined"){// ,
window.childWindow.focus();
}
}
function showChild(){
// , window childWindow
window.childWindow = window.open("child.html","child","width=300px,height=110px,resizable=no,scroll=no,status=no");
window.childWindow.focus();
}
</script>
</head>
<body>
<input name="btn_show" type="button" value=" " onclick="showChild()" />
<input name="btn_alert" type="button" value=" " onclick="alert(' ')" />
</body>
</html>
サブウィンドウのウェブページchild.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title> </title>
<script language="javascript">
window.onunload = function unload(){
window.opener.childWindow = undefined;
}
</script>
</head>
<body>
!
</body>
</html>