2

ユーザースクリプトのFirefoxアドオンバージョンに取り組んでいます。page-mod ライブラリを使用すると、アドオンの構文は非常にシンプルになります。例えば:

var data = require("self").data;
var pageMod = require("page-mod");
pageMod.PageMod({
  include: "*.example.com",
  contentScriptWhen: 'end',
  contentScriptFile: data.url("test.user.js")
});

test.user.jsこれにより、一致するサイトのスクリプトが実行されます*.example.com。ただし、典型的なユーザースクリプトでは、除外行を指定することもできるため、含まれている URL のサブディレクトリを簡単にバイパスできます。IOW、次のような行が必要です:

exclude: "*.example.com/somewhere",

しかし、pagemodのドキュメントには、そのようなオプションは記載されていません (また、存在するようにも見えません)。 この場合、どのように除外を指定しますか?

include は、正規表現から構築された一致パターンも受け入れることができるようです。ただし、正規表現が *.example.com には一致するが、*.example.com/subdir には一致しない (ただし、*.example.com/othersubdirs にも一致する) とは想像できません。

4

2 に答える 2

3

これを実現するために、正規表現で負の先読みを使用できます。

include: /^https?:\/\/([^\/]+\.)?example.com\/(?!somewhere).*/

この正規表現は、、、およびに一致しますがhttp://example.com/、またはには一致しません。https://example.com/http://foo.example.com/http://example.com/subdirhttp://example.com/somewherehttp://fooexample.com/

于 2012-08-08T06:30:04.147 に答える