首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我在哪里可以看到哪个铬扩展API对哪个铬版本有效?

我在哪里可以看到哪个铬扩展API对哪个铬版本有效?
EN

Stack Overflow用户
提问于 2012-07-12 13:40:08
回答 1查看 604关注 0票数 2

我喜欢chrome通过其扩展API提供给我的东西。但是,我总是发现自己迷失在API支持的丛林中,在哪个铬版支持下,以及最后一个chrome.experimental特性是什么时候进入支持的扩展中的。

Chrome扩展页面给了我一个很好的概览什么是支持的,但没有提到,因为什么版本。实验API概述也是如此。这个特定的API仍然是实验性的,还是已经在金丝雀中得到了支持。

如果我尝试使用chrome 样本网站中的示例,通常需要将一些API调用从chrome.experimental.foo更改为chrome.foo,或者发现根本不支持它。(chrome.experimental.alarm怎么了?)这通常意味着只需要使用试用和错误方法来消除所有错误,直到示例生效为止。

所以,我想知道是否有一个概述页面,它告诉我支持什么版本,支持什么API,或者什么时候决定放弃一个实验性API。如果没有这样的页面,您推荐的处理这种情况的方法或个人方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-12 14:47:42

此页上,描述了生成正式文档(从Chrome存储库自动生成)的过程。在同一页上,还可以阅读如何检索旧分支的文档。请注意,文档在某种程度上是不完整的:不推荐的API立即包含在内,尽管它们仍然存在(如onRequest)。

扩展中什么是新的?是API更改和更新的简短列表(不包括大多数实验性API)。它必须手动编辑,所以它并不总是最新的。例如,当前的稳定版本是20,但是页面的最后一个条目是19。

如果确实需要包含所有API更改的单个页面,则可以使用以下方法:

  • 首先,安装所有Chrome版本。这在自动完成时并不费时:我已经编写了一个自动安装Chrome的脚本,它复制了以前的配置文件:参见这个答案
  • 测试特性的存在性:
    1. 编写包含所有权限的清单文件(未识别的权限总是被忽略)。
    2. Chrome 18+:使用清单版本1和2复制扩展。一些API在清单版本1 (示例)中被禁用。
    3. 测试某个特性是否实现并按预期运行是非常耗时的。因此,最好测试API的存在。 一种合理的方法是递归地循环chrome的属性,并记录结果(显示给用户/发送到服务器)。

  • 测试的过程。使用下列方法之一:
    • 使用单一的Chrome配置文件,并在最低版本开始测试。
    • 为每个Chrome版本使用一个单独的配置文件,以便您可以同时测试多个Chrome版本。

  • 后处理:解释结果。

获取信息的示例代码:

代码语言:javascript
复制
/** 
 * Returns a JSON-serializable object which shows all defined methods
 * @param root    Root, eg.  chrome
 * @param results Object, the result will look like {tabs:{get:'function'}}
 */
function getInfo(root, results) {
    if (root == null) return results;
    var keys = Object.keys(root), i, key;
    results = results || {};
    for (i=0; i<keys.length; i++) {
        key = keys[i];
        switch (typeof root[key]) {
            case "function":
                results[key] = 'function';
            break;
            case "object":
                if (subtree instanceof Array) break; // Exclude arrays
                var subtree = results[key] = {};
                getInfo(root[key], subtree);         // Recursion
            break;
            default:
                /* Do you really want to know about primitives?
                 * ( Such as chrome.windows.WINDOW_ID_NONE ) */
        }
    }
    return results;
}
/* Example: Get data, so that it can be saved for later use */
var dataToPostForLaterComparision = JSON.stringify(getInfo(chrome, {}));
// ...
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11453108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档