4

問題
Chrome 拡張機能のポップアップ ページ内から、任意の JavaScript メソッドを使用してウィンドウ ポップアップを発生させると、ポップアップ ウィンドウがアニメーション化されますが、ウィンドウのコンテンツが入力されるとすぐにフォーカスが失われ、消えます。

奇妙なことに、Chrome の開発者ツールが拡張機能のコンテキストで開かれている限りポップアップ ウィンドウは開いたままですが、開発者ツールが閉じられるとポップアップ ウィンドウはすぐに消えます。

 

これは私の古いめちゃくちゃな 2006 iMac でよく発生していたので、構成の問題だと思いました。ただし、2007 iMac に Mac OS X (v1.7.5) と Chrome (v23.0.1271.97) の両方を新規インストールし、非常に単純な Chrome 拡張機能 (以下のコード) をテスト用に作成しましたが、まだ発生しています。 . これは Chrome のバグだと思わざるを得ません。

 

コード

「マニフェスト.json」

{
    "name": "Test Popups",
    "version": "0",

    "manifest_version": 2,

    "browser_action": {
        "default_popup": "popup.html"
    }
}

「popup.html」

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>

        <script src="popup.js"></script>
    </head>

    <body>
        <input type="submit" id="btn_Alert" value="Alert" />
        <input type="submit" id="btn_Confirm" value="Confirm" />
        <input type="submit" id="btn_Prompt" value="Prompt" />
    </body>
</html>

「popup.js」

document.onreadystatechange = function(){
    if (document.readyState === "complete"){
        attach_eventListeners();
    }
}

function attach_eventListeners(){
    var btn_Alert = document.getElementById("btn_Alert");
    var btn_Confirm = document.getElementById("btn_Confirm");
    var btn_Prompt = document.getElementById("btn_Prompt");

    btn_Alert.addEventListener("click", function(){
        window.alert("Test");
    }, false);
    btn_Confirm.addEventListener("click", function(){
        window.confirm("Test");
    }, false);
    btn_Prompt.addEventListener("click", function(){
        window.prompt("Test", "");
    }, false);
}

これらのファイルの ZIP へのリンクは次のとおりです。それらを自分でテストするには:

  1. ZIPを解凍します
  2. Chrome で、chrome://chrome/extensions/
  3. 右上の「開発者モード」チェックボックスをオンにします
  4. 左上の「パッケージ化されていない拡張機能を読み込む...」をクリックします
  5. 抽出されたファイルを含むフォルダーを選択します
  6. 「OK」をクリック
4

1 に答える 1

3

私が理解している限り、ポップアップ ウィンドウはフォーカスを失うことはなく、すぐに閉じられます。検査のために開発者ツールを開くと、このポリシーがオーバーライドされます。

alert, confirm,を使用するpromptと、ポップアップ ウィンドウがフォーカスを失い、Chrome によって閉じられます。

于 2014-05-09T09:33:42.413 に答える