浏览器插件 - Chrome 对 UserScript 的声明头(metadata)兼容性一览

1.这里的UserScript指的是,油猴插件或者Tampermonkey插件等支持的格式如下例子:

// ==UserScript==
// @name       
// @namespace  http://AsionTang.CN
// @version    0.1
// @description  
// @match      <$URL$>
// @copyright  2013+, AsionTang
// @grant none
// ==/UserScript==

而谷歌浏览器直接支持将此脚本安装为扩展。那么在编写此脚本时,出现的疑问是:谷歌浏览器对 UserScript 脚本的兼容性如何?

网搜答案没有简单得到答案,但是多亏开源的优势,直接阅读Chrome的源代码即可得到答案:

Chrome相关源码参考地址:Log of /trunk/src/chrome/browser/extensions/user_script_master.cc

当前为201855版本可见如下代码:

 static const base::StringPiece kUserScriptBegin("// ==UserScript==");
72      static const base::StringPiece kUserScriptEng("// ==/UserScript==");
73      static const base::StringPiece kNamespaceDeclaration("// @namespace");
74      static const base::StringPiece kNameDeclaration("// @name");
75      static const base::StringPiece kVersionDeclaration("// @version");
76      static const base::StringPiece kDescriptionDeclaration("// @description");
77      static const base::StringPiece kIncludeDeclaration("// @include");
78      static const base::StringPiece kExcludeDeclaration("// @exclude");
79      static const base::StringPiece kMatchDeclaration("// @match");
80      static const base::StringPiece kExcludeMatchDeclaration("// @exclude_match");
81      static const base::StringPiece kRunAtDeclaration("// @run-at");
82      static const base::StringPiece kRunAtDocumentStartValue("document-start");
83      static const base::StringPiece kRunAtDocumentEndValue("document-end");
84      static const base::StringPiece kRunAtDocumentIdleValue("document-idle");

而在源码最后还有一句:

// TODO(aa): Handle more types of metadata.

那么可见,当前尚有很多UserScript的声明头没有得到支持。

 

posted @ 2013-11-26 11:44  Asion Tang  阅读(750)  评论(0编辑  收藏  举报