【问题标题】:Missing 'onload.js' file breaks Chrome Extensions OAuth缺少“onload.js”文件会破坏 Chrome 扩展 OAuth
【发布时间】:2013-01-11 09:51:39
【问题描述】:

我正在将 Google Chrome 扩展程序从 Manifest v1 更新到 Manifest v2。我不会说事情进展顺利,主要是因为 Google 自己的 Chrome Extensions website 的文档过时了。

这是最新的:

Google 关于在扩展中使用 OAuth 的文档告诉我在清单中包含以下三个文件:

chrome_ex_oauth.html  
chrome_ex_oauth.js  
chrome_ex_oauthsimple.js

这些文件中的第一个文件 chrome_ex_oauth.html 基本上是扩展程序首次使用 OAuth 获取初始请求令牌时打开的重定向页面。在这个非常空闲的网页的更新版本中,head 部分列出了要加载的 三个 javascript 文件:上面列出的两个,一个名为:

onload.js

当我的扩展程序打开 chrome_ex_oauth.html 时,除了加载不存在的“onload.js”文件失败之外,我没有收到任何错误指示。显然,我在这里遗漏了一些东西。 OAuth 序列永远不会成功完成,而且确实没有迹象表明它曾经启动过。

有人知道我做错了什么吗?

【问题讨论】:

    标签: oauth google-chrome-extension


    【解决方案1】:

    发布此问题后,我比较了新旧版本的 chrome_ex_oauth.html。我看到在前者中,虽然没有提到 onload.js 脚本,但脑子里有以下内容:

    <script type="text/javascript">
        function onLoad() {
            ChromeExOAuth.initCallbackPage();
        };
    </script>
    

    这个函数被内联调用:

    <body onload="onload();">
    ...
    

    从 Manifest v2 开始,据我了解,内联 javascript 是严格禁止的,所以这行不通。对加载 onload.js 的调用被添加到文档头部。看起来好像忽略了 Google 文档中指向实际文件的链接。写起来很容易,但这是我在 onload.js 中输入的内容:

    window.onload = function() { ChromeExOAuth.initCallbackPage(); };
    

    之后,重定向工作正常,我能够完成 OAuth 过程。

    如果它不适合你,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 2020-04-03
      • 1970-01-01
      • 2017-09-15
      相关资源
      最近更新 更多