【问题标题】:Firefox OS privileged app: Permission denied to access property 'document' of new window object createdFirefox OS 特权应用程序:拒绝访问创建的新窗口对象的属性“文档”
【发布时间】:2014-08-23 06:25:09
【问题描述】:

在我的 Firefox OS 特权应用中,我需要通过 Google 进行身份验证。

uri=https://accounts.google.com/o/oauth2/auth............

var googleWin = window.open(uri, 'auth_window', 'fullscreen=0,width=200,height=100,resizable=1');


console.log(googleWin.document.title); 

上述试图打印文档标题的语句导致错误

Error: Permission denied to access property 'document'

我需要从文档标题访问 Google 身份验证“代码”。

如何解决权限问题?

提前致谢。

【问题讨论】:

    标签: javascript firefox firefox-os


    【解决方案1】:

    您不能直接访问窗口的组件。但是您可以在子 auth_window 中编写一个 javascript 函数,该函数可以轻松访问每个 dom 元素并执行您需要的任何操作或返回值。 然后从您的父窗口中调用这些 javascript 函数:

    console.log(googleWin.getDocumentTitle());
    

    【讨论】:

    • 谷歌的窗口打开页面,所以我不能添加我的自定义功能。 Aso 我尝试向 open 函数返回的子窗口对象添加一个函数。这也行不通。
    • 我没有意识到您实际上并不拥有子页面。您不能向该窗口添加功能。该功能需要是该子框架下载的内容的一部分。如果你真的想实现这一点,还有更多的工作要做。使用 ajax 调用第三方站点。在您自己的域上创建一个新页面,该页面使用该响应构建页面。您可以在此页面中添加所需的功能。请参阅下面亚历克斯的回答。他的意思可能是一样的。
    【解决方案2】:

    由于same origin security policy,您将无法访问该窗口的 DOM。在文档中,they suggest using AJAX 带有您的身份验证代码并处理该请求的响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2014-04-24
      • 1970-01-01
      • 2013-07-16
      • 2018-10-23
      相关资源
      最近更新 更多