Chrome扩展URL匹配设置:仅匹配电影详情页,排除子路径
解决方案
要让你的content script只在/movie/<id>或/tv/<id>层级的页面运行,排除带有子路径的URL,可以通过以下两种方式修改配置:
方式一:使用exclude_matches排除子路径
这种方式会保留匹配所有/movie/*和/tv/*的URL,但排除那些带有额外子路径的(比如/movie/123/cast),同时允许URL包含查询参数或哈希(比如/movie/123?ref=example)。
修改后的配置:
"content_scripts": [ { "matches": ["https://*.themoviedb.org/movie/*", "https://*.themoviedb.org/tv/*"], "exclude_matches": ["https://*.themoviedb.org/movie/*/*", "https://*.themoviedb.org/tv/*/*"], "js": ["src/index.js"], "css": ["src/index.css"] } ]
方式二:精确锚定URL结尾
这种方式仅匹配路径恰好为/movie/<id>或/tv/<id>且没有后续内容(包括查询参数、哈希)的URL。如果URL带有?或#,则不会触发脚本运行。
修改后的配置:
"content_scripts": [ { "matches": ["https://*.themoviedb.org/movie/*$", "https://*.themoviedb.org/tv/*$"], "js": ["src/index.js"], "css": ["src/index.css"] } ]
说明
- 方式一适用性更广,大多数场景下推荐使用,因为它兼容带查询参数的合法详情页URL。
- 方式二更严格,仅匹配完全没有后续内容的纯路径URL。
内容的提问来源于stack exchange,提问作者Raghavan Vidhyasagar
相关产品推荐
相关产品推荐

