2

我有一个 chrome 扩展,它的 popup.html 有一个指向 oauth/openid 登录页面的链接。确切地说是这样的页面

我需要在只有地址栏的弹出式浏览器窗口中打开此登录页面。不应有任何其他工具/菜单栏。我试过window.open chrome.windows.createwindow.showModalDialog方法。

他们都以我想要的方式创建了一个弹出选项卡,但无论如何都没有显示地址栏。当通过浏览器直接浏览popup.html时,它显示地址栏,当点击链接时。但不是在通过扩展加载弹出窗口时。

由于此页面显示了一个 oauth/openid 登录页面,因此用户必须看到弹出窗口中显示的当前页面的地址。没有人会向没有地址栏的页面提供他们的 facebook/google 凭据。

任何帮助都非常感谢。

4

2 回答 2

5

我环顾四周,似乎这是一个已知的错误....
http://code.google.com/p/chromium/issues/detail?id=108875&q=popup%20bar&colspec=ID%20Pri%20Mstone%20ReleaseBlock %20OS%20Area%20Feature%20Status%20Owner%20Summary
您应该为以后的更新加注星标,我认为您也应该对您的情况发表评论。

从扩展代码中获得所需弹出窗口的唯一方法是打开一个选项卡,让它打开弹出窗口,然后关闭选项卡......远非理想。
但是如果这对你来说已经足够好了,这里有一些示例代码......

清单.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;

打开.html

<script src='open.js'></script>

打开.js

window.close();
window.open(window.location.hash.substr(1), '…', '…');
于 2012-07-22T16:06:12.587 回答
2

好的,我将尝试这个问题。我了解您在隐藏地址栏时所说的内容。例如,我的 rem-i-con 扩展。如果用户尚未注册,它将打开一个新选项卡,然后要求他们创建帐户或登录。但是地址栏是空白的。

但是,在我的 popup.html 文件中,我有一些链接可以打开一个新选项卡,其地址显示在窗口中。我了解您想要一个模型类型的窗口,但我不确定是否可以做到。这是您可以尝试的方法。

有一个常规链接 asdd

单击后,您可以让监听器监视刚刚打开的选项卡。您可以通过扫描活动选项卡轻松完成此操作。

然后,一旦选项卡关闭,您就可以重新加载 popup.html 文件。为此,您需要使用 background.html 文件。

如果这可行,那么您可以自动执行标签点击。


于 2012-07-20T16:00:05.600 回答