【问题标题】:Can't drag frameless Chrome App after minimizing it最小化后无法拖动无框Chrome App
【发布时间】:2014-10-06 03:01:05
【问题描述】:

我创建了一个带有自定义最小化、最大化和关闭按钮的无框架 Chrome 应用。它适用于这些按钮和可拖动区域,或上下文菜单选项,但是一旦将其最小化,您就不能再从可拖动区域或菜单中移动(拖动)它了。

悬停事件也不起作用,但这不是问题,而且似乎是 Chromium 错误。见:

我想知道是否有解决方案以便我可以继续使用无框窗口,或者我唯一能做的就是在创建窗口时从 frame: "none" 更改为 frame: "chrome" 并仅更改标题栏颜色。

我使用的是 Windows 8,我在 Chromium 38.0.2066.0 (279108) 和 Chrome 36.0.1985.143 m 中都遇到了同样的问题。

我创建了一个测试应用程序,看看它是否仍然存在相同的问题,或者它是否是应用程序的其他部分的问题并且问题仍然存在。这是用于测试的代码:

ma​​nifest.json

{
    "manifest_version": 2,
    "name": "Test",
    "version": "1.0.0",

    "description": "...",
    "icons": {
        "16": "icon-16.png",
        "32": "icon-32.png",
        /*"48": "icon-48.png",*/
        "64": "icon-64.png",
        "128": "icon-128.png"
    },

    "app": {
        "background": {
          "scripts": ["background.js"],
          "persistent": false
        }
    },

    "offline_enabled": true,

    "permissions": [{"fileSystem": ["write"]} ]
}

background.js

chrome.app.runtime.onLaunched.addListener(function() {
    chrome.app.window.create('test.html', {
        frame: "none",
        bounds: {
            width: 1000,
            height: 600
        },
        minWidth:800,
        minHeight:400
    });
});

test.html

<html>
<head>
    <meta charset="utf-8"> 
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <div id="drag-me">DRAG ME!</div>
</body>
</html>

style.css

html{
    border:1px solid #CCC;
}

#drag-me{
    width:100%;
    height:100%;
    background:#FF3344;
    -webkit-app-region: drag;
}

#drag-me:hover{
    background:#FF4455;
}

编辑:

我曾尝试在最小化窗口时删除-webkit-app-region: drag 属性,并在使用事件再次恢复或最大化窗口时将其放回原处,但这并不能解决问题。

JS:

chrome.app.window.current().onMinimized.addListener(function(e){
    document.getElementById("drag-me").className="";
});

chrome.app.window.current().onRestored.addListener(function(e){
    document.getElementById("drag-me").className="draggable";
});

CSS:

.draggable{
    -webkit-app-region: drag;
}

有什么想法吗?谢谢!

【问题讨论】:

    标签: google-chrome window draggable google-chrome-app minimize


    【解决方案1】:

    请参阅http://crbug.com/381609。这是 Windows 上的一个错误,应该在 M38 中修复。如果您仍然在 chrome canary 中看到它,请对该错误发表评论或打开一个新错误。如果您确实打开了一个新错误,请通过 benwells@chromium.org 告诉我。

    【讨论】:

    • 谢谢!我已经在 Chromium 39.0.2127.0 (290179) 上对其进行了测试,现在它可以正常工作了。我将在低于 39 的版本上使用原生 Windows 框架。以防万一有人也需要这个:parseInt(window.navigator.appVersion.match(/Chrome\/(\d+)\./)[1], 10) &lt; 39
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2023-03-14
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    相关资源
    最近更新 更多