当前位置:首页 > 操作系统 > MacOs

javascript – Mac OS X上的Chrome扩展程序:窗口弹出窗口消失

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

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

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

“的manifest.json”

<code>{
    "name": "Test Popups",
    "version": "0",

    "manifest_version": 2,

    "browser_action": {
        "default_popup": "popup.html"
    }
}
</code>

“popup.html”

<code><!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>
</code>

“popup.js”

<code>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);
}
</code>

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

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

解决方法:

据我所知,弹出窗口不能失去焦点,或者它们会立即关闭.
打开用于检查的开发人员工具会覆盖此策略.

使用alert,confirm,prompt会导致弹出窗口失去焦点,因此Chrome会关闭它.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐