2012-04-11 13 views
0

GoSearch関数の(b)はローカル/プライベート変数を上書きするためにどのようにJavaScriptのファイルsearch.jsオーバーライドjavascript関数のローカル変数

に存在している外部関数GoSearchがあります。 例変数b = "?"を変更します。 "?CS =このサイト& U =のhttp://google.com" = bにあなたがこれを行うことができます

GoSearch(q, G, p, E, r, F, D, C, B, j, n, z, y, x, w, A, l, v) { 
ULShpi: ; 
try { 
    AddSearchoptionsToQuery() 
} catch (H) {} 
var i = document.forms[0].elements[G].value; 
i = i.replace(/\s*$/, ""); 
var u = "1"; 
if (q) u = document.forms[0].elements[q].Value; 
if (i == "" || u == "0") { 
    alert(v); 
    if (null != event) { 
     event.returnValue = false; 
     return false 
    } else return 
} 
var b = "?"; 
if (suggestedQuery) b += "sq=1&"; 
b += "k=" + encodeURIComponent(i); 
for (var k = ["rm", "rm1", "rm2", "rm3", "rm4", "rm5", "ql", "ql1", "ql2", "ql3", "ql4", "ql5", "v", "v1", "v2", "v3", "v4", "v5", "hs", "hs1", "hs2", "hs3", "hs4", "hs5"], h = 0; h < k.length; h++) { 
    var m = GetUrlKeyValue(k[h], true); 
    if (m && m.length > 0) b += "&" + k[h] + "=" + m 
} 
if (l != null && l != "") b += "&r=" + encodeURIComponent(l); 
if (null != p) { 
    var t = document.forms[0].elements[p].value; 
    if (E) b += canonicalizedUtf8FromUnicode(" " + t); 
    else b += "&a=" + canonicalizedUtf8FromUnicode(" " + t) 
} 
var a = null, 
    c = "", 
    d = "", 
    o = null != j; 
if (o) { 
    c = j; 
    d = j 
} else if (r) { 
    a = document.forms[0].elements[F]; 
    c = a.options[a.selectedIndex].getAttribute("scope"); 
    d = a.options[a.selectedIndex].value 
} 
if (r || o) { 
    var f = "", 
     g = "", 
     e = false; 
    if (d == z) { 
     f = d; 
     c = ""; 
     g = document.forms[0].elements[D].value; 
     e = true 
    } 
    if (d == y) { 
     f = d; 
     c = ""; 
     g = document.forms[0].elements[C].value; 
     e = true 
    } 
    if (d == x) { 
     f = c; 
     c = ""; 
     g = document.forms[0].elements[B].value; 
     e = true 
    } 
    if (c == w) { 
     c = a.options[a.selectedIndex].value; 
     e = true 
    } 
    if (e) n = A; 
    if (c != "") { 
     b += "&s=" + encodeURIComponent(c); 
     if (a.options[a.selectedIndex].value != "" && !e) n = a.options[a.selectedIndex].value 
    } 
    if (f != "") b += "&cs=" + encodeURIComponent(f); 
    if (g != "") b += "&u=" + encodeURIComponent(g) 
} 
var I = document.forms[0]; 
try { 
    external.AutoCompleteSaveForm(I) 
} catch (s) {} 
window.location = n + b; 
try { 
    if (null != event) event.returnValue = false 
} catch (s) {} 
return 

}

答えて

0

最速の方法を、外部にリンクされていません直接ファイル。あなたのバージョンのファイルをダウンロードし、必要なものを変更して、それをあなたのページに提供してください。

ファイルをダウンロードしてサーバーにダウンロードし、変更して、要求しているページにプッシュすることもできます。

+0

このファイルには、私はカント特定のツールである---

function ReplaceGoSearch { GoSearch = function(...) { ... }; } ExecuteOrDelayUntilScriptLoaded(ReplaceGoSearch, "search.js"); 

Ferdaを:それはページの先頭にない直接行うが、遅れている場合は、search.jsがロードされた動的後GoSearch交換を行う必要があるだろうローカルコピーを保管してください。また、将来的には、ツールの修正または上のグラデーションがローカルコピーを上書きするかどうかを確認します。 –

+0

ファイルをサーバーサイドのコードから取得し、変更してブラウザにプッシュすることができます。したがって、あなたのページはサーバー上のページにアクセスし、実際には元の場所からファイルを取得し、ストリームを変更してからストリームをブラウザにプッシュします。 – kemiller2002

1

delegate controlによって、GoSearch機能を検索ボックスのページに自分で置き換えることができます。

変更されたGoSearch機能を持つページにJavaScriptコードを挿入するユーザーコントロール(ASCX)を作成します。コントロールをAdditionalPageHeadに配置する機能を持つSPソリューションを、サイトまたはサイトコレクションのすべてのページヘッドに作成します。

search.jsがあなたのページにどのように読み込まれているかを確認してください。

関連する問題