例如,我想在google.com主页和google.com搜索结果页面中添加一些功能,我想在一个greasemonkey脚本中执行此操作,我这样做:
@include http://google.com*
然后我检查,如果是主页,我在搜索框下添加第三个按钮,例如,如果是结果页面,我更改字体或类似的东西。
区分这些页面的最佳方法是什么?我目前正在做
if (document.URL==="homepage") {
add button
} else if (document.URL==="searchpage") {
change font
}
切换会更好吗?有更好的解决方案吗?
答案 0 :(得分:2)
switch
比系列if/else if
我经常使用就是为了这个目的。
// caching path is faster (although the difference is only milliseconds)
var path = location.pathname;
switch (true) {
/* ----- Home page ----- */
case path.indexOf('/path1') !== -1:
addButton();
break;
/* ----- Search page ----- */
case path.indexOf('/path2') !== -1:
changeFont();
break;
}
<强>更新强>
使用ES6 includes()
var path = location.pathname;
switch (true) {
/* ----- Home page ----- */
case path.includes('/path1'):
addButton();
break;
/* ----- Search page ----- */
case path.includes('/path2'):
changeFont();
break;
}