我有一个chrome扩展程序,其popup.html有一个指向oauth / openid登录页面的链接。准确到this
这样的网页我需要在只有地址栏的弹出式浏览器窗口中打开此登录页面。不应该有任何其他工具/菜单栏。我尝试了window.open
chrome.windows.create
和window.showModalDialog
方法。
所有这些按照我想要的方式创建一个弹出式选项卡,但 none显示地址栏无论。当通过浏览器直接浏览popup.html时,它会在单击链接时显示地址栏。 但不是通过扩展程序加载弹出窗口时。
由于此页面显示了oauth / openid登录页面,因此用户必须看到弹出窗口中显示的当前页面的地址。没有人会将他们的facebook / google凭据提供给没有地址栏的页面。
任何帮助都非常适合。
答案 0 :(得分:4)
我环顾四周,似乎这是一个已知的bug ....
http://code.google.com/p/chromium/issues/detail?id=108875&q=popup%20bar&colspec=ID%20Pri%20Mstone%20ReleaseBlock%20OS%20Area%20Feature%20Status%20Owner%20Summary
您应该为未来的更新加注星标,我认为您应该对您的情况发表评论。
你可以通过扩展代码获得所需弹出窗口的唯一方法是打开一个标签,打开弹出窗口然后关闭标签.....远非理想状态。
但是这对你来说足够好了,这里有一些示例代码......
manifest.json
{
"name": "Popup with adresse bar",
"version": "1.0",
"permissions": [
"tabs", "<all_urls>"
],
"browser_action": {
"default_title": "Popup with adresse bar.",
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"manifest_version" : 2
}
popup.html
<!doctype html>
<html>
<head>
<script src="popup.js"></script>
</head>
<body>
<a id='clicky' href='#'>clicky</a>
</body>
</html>
popup.js
clicky = function() {
chrome.tabs.create({
url: 'open.html#' + 'http://www.google.com',
active: false
});
}
onload = function() {
document.querySelector('#clicky').onclick = clicky;
}
window.onload = onload;
open.html
<script src='open.js'></script>
open.js
window.close();
window.open(window.location.hash.substr(1), '…', '…');
答案 1 :(得分:2)
好的,我试试这个问题。我理解你所说的地址栏被隐藏了。例如,我的rem-i-con扩展。如果用户尚未注册,则会打开一个新选项卡,然后要求他们创建帐户或登录。但是地址栏是空白的。
但是,在我的popup.html文件中,我有一些链接打开一个新选项卡,其中显示了窗口中显示的地址。我知道你想要一个模型类型窗口,但我不确定是否可以完成。这是你可以尝试的东西。
有一个常规链接asdd
单击时,您可以拥有监听刚刚打开的选项卡的监听器。您可以通过扫描活动标签轻松完成此操作。
然后,一旦关闭选项卡,您就可以重新加载popup.html文件。您需要使用background.html文件。
如果这样可行,那么您可以自动执行标记点击。