Closed hirosejn closed 5 years ago
function openSubwindow(sub, html, uri, name, opt){
uri = uri || "about:blank";
name = name || "HJN_subwindow";
opt = opt || "width=600, height=450 "
+ ",menubar=no, toolbar=no, location=no, status=yes, resizable=yes, scrollbars=yes";
html = html || "";
// サブウィンドウが開いているとき閉じる
if (sub && !sub.closed) sub.close();
// サブウィンドウを開く
sub = window.open(uri, name, opt);
// サブウィンドウのHTML bodyを設定する
sub.document.body.innerHTML = html;
// サブウィンドウを最前面にする
sub.blur();
window.focus();
window.blur();
sub.focus();
// サブウィンドウを返却する
return sub;
}
var sub;
sub = openSubwindow(sub, "hoge<br><br><br><br><br><br><br><br><br><br><br><br><br><br>2ho____________________________________________________________________________ge<br><br><br><br><br><br><br><br><br><br><br>3hoge");
// ウィンドウ処理完了前に、連続で以下のコマンドを発行すると(手操作程度待てばエラーとならない)
// Uncaught TypeError: Cannot read property 'document' of null
// at openSubwindow (<anonymous>:12:6)
// at <anonymous>:23:7
sub = openSubwindow(sub, "hoge<br><br><br><br><br><br><br><br><br><br><br><br><br><br>2ho____________________________________________________________________________ge<br><br><br><br><br><br><br><br><br><br><br>3hoge");
http://phpjavascriptroom.com/?t=js&p=window_openclose https://web-designer.cman.jp/javascript_ref/window/focus/ http://amenti.usamimi.info/windowopen.html
以下のようにしたいが、2回目のaを渡さないと再表示する際にHTMLがie11だと「書き込みできません。」、chromeだとBODYにセットされないままとなる
function openSubwindowByUri(uri, name, opt, sub){
uri = uri || "about:blank";
name = name || "HJN_subwindow";
opt = opt || "width=600, height=450 "
+ ",menubar=no, toolbar=no, location=no, status=yes, resizable=yes, scrollbars=yes";
// サブウィンドウが開いているとき閉じる
if (sub && !sub.closed) sub.close();
// ここでsleepしてもUncaught TypeError: Cannot read property 'blur' of null
// else {sub = window.open(uri, name, opt);sleep(1000); sub.close(); sleep(1000);}
// サブウィンドウを開く
sub = window.open(uri, name, opt);
// サブウィンドウを最前面にする
sub.blur();
window.focus();
window.blur();
sub.focus();
// サブウィンドウを返却する
return sub;
}
function openSubwindowByHtml(html, name, opt, sub){
html = html || "";
// サブウィンドウを開く
sub = openSubwindowByUri("about:blank", name, opt, sub);
// サブウィンドウのHTML bodyを設定する
sub.document.body.innerHTML = html;
// サブウィンドウを返却する
return sub;
}
var a = openSubwindowByHtml("hoge<br><br><br><br><br><br><br><br><br><br><br><br><br><br>2ho____________________________________________________________________________ge<br><br><br><br><br><br><br><br><br><br><br>3hoge");
a = openSubwindowByHtml("hoge<br><br><br><br><br><br><br><br><br><br><br><br><br><br>2ho____________________________________________________________________________ge<br><br><br><br><br><br><br><br><br><br><br>3hoge",null,null,a);
function sleep(ms){
var start = now = new Date().getTime();
while (start > now - ms) now = new Date().getTime();
}
Usage画面をiframeから別ウィンドウ表示に変更(util-Menu.js 追加)
iframeの場合、アンカーリンク がiframe内のみとならず、親Windowがiframe内に表示されるため 別ウィンドウ表示に変更する
util-SubWindow.js
util.js
util-Menu.js
util.js
util-Element.js
tatLogDiver-Menu.js
tatLogDiver-Init.js