每次点击扩展程序时,Chrome扩展程序中的iFrame都会加载

时间:2013-11-15 11:31:38

标签: google-chrome google-chrome-extension

我的扩展程序中有一个iframe。 iFrame可帮助用户登录帐户。 一旦用户登录并在关闭后再次单击扩展名。 iframe再次加载并且用户已注销。

目前iframe直接嵌入在html中。我也尝试使用JS附加它,但即使这样也没有用。

修改 我的清单:

"permissions": ["tabs", "http://*/*", "https://*/*","activeTab"],
  "content_scripts":[
    {
        "matches":["http://*/*", "https://*/*"],
        "js":["data/js/popup.js","data/js/jquery-1.10.2.min.js"]
    }
  ],

popup.html:

    <div class="frame">
        <iframe id="Receiver" width="100%" height="250px" frameborder="0" src="http://abc.url/login"></iframe>
    </div>

链接(iframe)有登录页面,让用户登录他的帐户。我没有任何直接访问该登录页面的信息,但如果需要,请告诉我。

问题: 1)点击扩展程序需要花费大量时间来显示popup.html:经过大量搜索,我知道在iframe完全加载之前,扩展程序不会弹出面板。
2)当用户登录其帐户,并通过单击浏览器上的其他位置访问其他页面或关闭扩展程序时。然后再次点击扩展名,扩展程序再次加载框架/花费大量时间显示html页面,并且用户也被注销。

我想要一些像 GroupDocs Viewer 扩展程序,一旦用户登录,直到他按下'logout',他就不会被注销。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了问题,加载http://abc.url/login会在用户登录时将用户注销。因此,每次打开弹出窗口时,都会加载iframe,并且用户会被有效注销。

可能的解决方案:

  1. 尝试检测用户是否已登录,然后将iframe添加到DOM(通过JS)。例如。如果有一个页面只能由登录用户访问(例如http://abc.url/account),请尝试访问此页面并查看是否出现错误。 (确切的设置取决于服务器处理未经授权的请求的方式。)

  2. 默认情况下不要加载iframe,但要有一个用户必须点击的链接或按钮才能显示登录iframe。