1

我正在经历将 Google Chrome 扩展从 Manifest v1 更新到 Manifest v2 的过程。我不会说事情进展顺利,主要是因为谷歌自己的Chrome 扩展网站上的文档过时了。

这是最新的:

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 序列永远不会成功完成,并且确实没有迹象表明它曾经被启动过。

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

4

1 回答 1

4

发布此问题后,我比较了 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 过程。

让我知道它是否不适合你。

于 2013-01-11T01:51:39.170 回答