2017-01-05 14 views
0

例えば、私は、検索結果ページをgoogle.comホームページにいくつかの機能を追加し、google.comにしたい、と私は1つのGreasemonkeyスクリプトでそれをしたい、私はない:Greasemonkeyスクリプト内の異なるページを区別する最も良い方法は?

@include http://google.com* 

それから私はかどうかを確認しますそれはホームページで、検索ボックスの下に3番目のボタンを追加します。結果ページであれば、フォントなどを変更します。

これらのページを区別する最良の方法は何ですか?私は現在行っています

if (document.URL==="homepage") { 
    add button 
} else if (document.URL==="searchpage") { 
    change font 
} 

スイッチが良いでしょうか?よりよい解決策がありますか?

+0

一つのきちんとした技術を使用して:http://stackoverflow.com/questions/3232750/multiple-greasemonkey-metablocks/3243697#3243697 – Hellion

答えて

1

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; 
} 
+0

おかげで、私はスイッチを使用します。 – DD3R

関連する問題