javascript - Mac OS X 上的 Chrome 扩展 : Window popups disappear

标签 javascript macos google-chrome google-chrome-extension

问题
在 Chrome 扩展程序的弹出页面中,使用任何 JavaScript 方法导致弹出窗口会导致弹出窗口动画化,但一旦填充窗口的内容,就会立即失去焦点并消失。

奇怪的是,只要在扩展上下文中打开 Chrome 的开发者工具,弹出窗口就会保持打开状态,但如果关闭开发者工具,弹出窗口将立即消失。

这曾经发生在我的 2006 年旧 iMac 上,所以我认为这是我的配置问题。但是,我刚刚在 2007 iMac 上全新安装了 Mac OS X (v1.7.5) 和 Chrome (v23.0.1271.97),并创建了一个非常简单的 Chrome 扩展(下面的代码) 进行测试,它仍在发生。我不禁认为这是 Chrome 的一个错误。

代码

“ list .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);
}

这是一个 link to a ZIP of these files .自己测试它们:

  1. 解压缩 ZIP
  2. 在 Chrome 中,转到 chrome://chrome/extensions/
  3. 选中右上角的“开发者模式”复选框
  4. 点击左上角的“加载解压的扩展...”
  5. 选择包含提取文件的文件夹
  6. 点击“确定”

最佳答案

据我了解,弹窗不能失去焦点,或者立即关闭。 打开开发人员工具进行检查会覆盖此政策。

使用alertconfirmprompt 会导致弹出窗口失去焦点,因此被 Chrome 关闭。

关于javascript - Mac OS X 上的 Chrome 扩展 : Window popups disappear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13490538/

相关文章:

javascript - 返回自定义 promise

javascript - 如何使图像适合框架,保持纵横比和缩略图列表的中心

objective-c - 基于文档的 OSX 应用程序 - 将打开文档的数量限制为一个

c - getopt(3) 在 mac os 和 CentOS 上

javascript - 为什么 chrome.pageCapture.saveAsMHTML 在我的 Google Chrome 扩展程序中不起作用?

google-chrome - 在 Chrome 开发者工具中禁用工作区功能?

javascript - 从 &lt;script&gt; HTML 标记执行 Javascript 函数时为 "Uncaught TypeError"

javascript - 谷歌地图javascript禁用谷歌标志链接

objective-c - 有没有办法更新 launchd overrides.plist 上的 SMLoginItemBookmarks 数据

javascript - MeteorJS 外部文件 : css and js