hirosejn / HJN

TAT log Diver
https://hirosejn.github.io/HJN/dist/tatLogDiver.min.html
0 stars 0 forks source link

Usage画面をiframeから別ウィンドウ表示に変更(util-Menu.js 追加) #95

Closed hirosejn closed 5 years ago

hirosejn commented 5 years ago

Usage画面をiframeから別ウィンドウ表示に変更(util-Menu.js 追加)

iframeの場合、アンカーリンク がiframe内のみとならず、親Windowがiframe内に表示されるため 別ウィンドウ表示に変更する

hirosejn commented 5 years ago

以下のようにしたいが、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);
hirosejn commented 5 years ago

おまけ:簡易スピンロックsleep

function sleep(ms){
  var start = now = new Date().getTime();
  while (start > now - ms) now = new Date().getTime();
}