我知道可以通过添加@include
语句在不同的URL上运行脚本,但是可以根据URL运行不同的代码集吗?
我的脚本目前工作正常,但我不得不将其分成 5 个单独的用户脚本,感觉有点草率。
若要按 URL 切换运行的代码,请针对位置 对象Doc 的各个部分使用 if()
或 switch()
语句。
为避免误报和副作用,最好只测试最具辨别力的属性(通常hostname
和/或pathname
(。
例如,对于在不同站点上运行的脚本:
if (/alice.com/.test (location.hostname) ) {
// Run code for alice.com
}
else if (/bob.com/.test (location.hostname) ) {
// Run code for bob.com
}
else {
// Run fall-back code, if any
}
// Run code for all sites here.
或者,对于同一站点的不同页面:
if (//comment/edit/.test (location.pathname) ) {
// Run code for edit pages
}
else if (//comment/delete/.test (location.pathname) ) {
// Run code for delete pages
}
else {
// Run fall-back code, if any
}
// Run code for all pages here.
请注意转义的使用。
.test()
用于正则表达式的强大功能。 例如
/(alice|bob).com/.test (location.hostname)
.