在不同 URL 处对 运行 不同代码使用相同的用户脚本
Using the same userscript to run different code at different URL's
我知道可以通过添加 @include
语句在不同的 URL 上 运行 脚本,但是可以 运行 不同的代码集基于 URL?
我的脚本目前可以正常工作,但我不得不将它分成 5 个单独的用户脚本,感觉有点草率。
要切换运行的代码,根据 URL,对 the location objectDoc.
的部分使用 if()
或 switch()
语句
为了避免误报和副作用,最好只测试最具鉴别力的 属性(通常是 hostname
and/or 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)
.
我知道可以通过添加 @include
语句在不同的 URL 上 运行 脚本,但是可以 运行 不同的代码集基于 URL?
我的脚本目前可以正常工作,但我不得不将它分成 5 个单独的用户脚本,感觉有点草率。
要切换运行的代码,根据 URL,对 the location objectDoc.
的部分使用if()
或 switch()
语句
为了避免误报和副作用,最好只测试最具鉴别力的 属性(通常是 hostname
and/or 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)
.