私は通常、現在のページですべての作業を行うブックマークレットに取り組んでいますが、新しいウィンドウを開く必要がある場合があります (主にログインフローのため)。これはほとんど機能していますが、クロムは予期しないことをしています。
window.open
私が行っている呼び出しは、ほとんどのブラウザーで標準の新しいウィンドウ/タブになりますが、クロムでは別のスタイルのウィンドウで開きます。ウィンドウにはタブがなく、読み取り専用の URL バーがあります。
chrome は、マウス クリックからどれだけ離れて開くかに基づいて動作しているようです。これを示す簡単なコードを次に示します。
<!DOCTYPE html>
<html>
<head>
<title>Chrome window.open Test</title>
<script>
function startOpen() {
var delay = Number(document.getElementById('delay').value);
setTimeout(openWindow, delay);
}
function openWindow() {
window.open('http://www.google.com', '_blank');
}
</script>
</head>
<body>
<input type="text" id="delay" value="1000"></input>
<input type="button" value="Open" onclick="startOpen()"></input>
</body>
</html>
遅延をそのままにしておくと、1000
正常に開きます。ただし、それを3000
別のスタイルのウィンドウで開くと、次のようになります。
低速の接続では、ブックマークレットの初期化に 1 秒以上かかることがあるため (いくつかのライブラリをロードして資格情報チェックを実行する必要があります)、この時間枠から外れる場合があり、ブラウザーや試行間で動作に一貫性がなくなります。
標準ウィンドウを開くようにクロムに指示する方法はありますか、それともこれは私が一緒に暮らさなければならない強制的な動作ですか?