我有一个 chrome 扩展程序,它的 popup.html 有一个指向 oauth/openid 登录页面的链接。准确地说是像this这样的页面
我需要在只有地址栏的弹出式浏览器窗口中打开此登录页面。不应有任何其他工具/菜单栏。我尝试了 window.open
chrome.windows.create
和 window.showModalDialog
方法。
他们都按照我想要的方式创建了一个弹出选项卡,但是无论如何都没有显示地址栏。当通过浏览器直接浏览 popup.html 时,它会显示地址栏,当链接被点击时。 但不是通过扩展程序加载弹出窗口时。
由于此页面显示了一个 oauth/openid 登录页面,因此用户必须看到弹出窗口中显示的当前页面的地址。没有人会向没有地址栏的页面提供他们的 facebook/google 凭据。
非常感谢任何帮助。
最佳答案
我环顾四周,这似乎是一个已知错误....
http://code.google.com/p/chromium/issues/detail?id=108875&q=popup%20bar&colspec=ID%20Pri%20Mstone%20ReleaseBlock%20OS%20Area%20Feature%20Status%20Owner%20Summary
您应该为将来的更新加注星标,我认为您也应该对您的情况发表评论。
从扩展代码中获得所需弹出窗口的唯一方法是打开一个选项卡,让它打开弹出窗口,然后关闭该选项卡......远非理想。
但万一这对你来说足够好,这里有一些示例代码....
list .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), '…', '…');
关于javascript - 使用扩展程序显示带有地址栏的 chrome 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11492018/