function focusOrOpenWindowByName(windowName, url = 'about:blank') {
let win = window.open('', windowName);
if (!win || win.closed) {
// ウインドウを開けなかった場合
return;
}
try {
if (win.location.href !== 'about:blank') return;
win.focus();
} catch (e) {
// CORSエラー等の場合
try {
win.focus();
} catch (ex) {}
return;
}
if (url !== 'about:blank') {
// URLを開く
win.location.href = url;
} else {
// 空白タブがある場合は閉じる
win.close();
// 警告する
setTimeout(function () {
window.alert("指定のタブがありません");
// ユーザに選択させる場合
// if (window.confirm("空ページを開きますか?")) {
// window.open('', windowName);
// }
}, 0);
}
}