8

コードを動的にロードするスクリプトがあります。一種の検索エンジンです。検索ボタンを押すと、アクションがトリガーされ、多くのパラメーターを含む新しいページが開きます。

スクリプトで生成されたパラメータの 1 つを新しい URL でオーバーライドしたいと考えています。JS コードはかなり大きくて読みにくいですが、Firebug DOM エディターで重要な部分を見つけました。

これは、検索を実行したときに生成される URL のパターンです。

http://www.example.com/...?ParameterOne=123&ParameterTwo=Two&ThisParameter=Sth&ParameterFour=Four...

編集したいのは「ThisParameter」で、その値を変更します。これは、私が望むことを行う DOM で編集された部分です。

Foobar = {
_options: [],
...
var options = {"ParameterOne":123,"ParameterTwo":"Two","ThisParameter":"ABC","ParameterFour":Four,...}
...

これは、Firebug の DOM タブで「パスのコピー」を選択したときの「ThisParameter」の出力です。

_options[0].ThisParameter

私はこれがまったく可能であると思っています。だと思うのは、Firebug でこのパラメーターを変更でき、完全に機能するという事実です。したがって、Firebug が編集できる場合は、別のスクリプトで影響を与える方法があるはずです。

提案を楽しみにしています、事前に感謝します!

4

3 に答える 3

1

動的スクリプトは編集できないため、次のオプションがあります。

  1. スクリプトに正しい入力を与えて、スクリプトが自分の値を使用することを期待する必要があります。
  2. ここで説明したように、結果ページにスクリプトを追加して、URLと引数を読み取り、変更してリダイレクトします。(すべてを関数に入れる場合、関数に一意の名前が付けられていれば、動的スクリプトと競合しないはずです。)

検索ボタンを使用して、次のjQueryコードのようなものをページに追加してみてください。

$('input[name=search_button_name]').click(function(e) {
    e.preventDefault();
    var form_search = $('#search_form_id');
    $('<input>').attr({
        type: 'hidden',
        name: 'ThisParameter',
        value: 'SomethingElse'
     }).appendTo(form_search);
     f.submit();
});
于 2012-10-23T18:55:13.943 に答える
0

任意の js 関数とメソッドをオーバーライドしたり、コードをラップしたりできます。最も簡単な方法は、取得したコードを確認することです。コードが読み込まれたら、独自の機能を持つメソッドを再宣言します。

特定の jquery リクエストでパラメーターを置き換えようとしている場合、jquerys ajax メソッドをラップすることもできます。

var jquery_ajax = $.ajax
$.ajax = function(options){
    // parse only a specific occurence
    if(options.url.indexOf("example.com") > -1) {
           // change the url/params object - depending on where the parameter is
        options.params.ThisParameter = "My Custom value"
    }
    // call the original jquery ajax function
    jquery_ajax(options);
}

しかし、ajax リクエスト自体ではなく、ajax リクエストを構築するメソッドをオーバーライドする方がはるかにクリーンです。

于 2012-10-31T13:40:18.727 に答える
0

変数オプション( )の範囲についてさらに調査しますvar optionsが、それはグローバルですか? つまり、Firebug コンソールに「options」と入力すると、そのプロパティが表示されますか?

その場合、独自のスクリプトを介してアクセスでき、変更は値です。

options.ThisParameter = 'my-own-value';

スクリプトを検索ボタンのクリック イベントにフックすることができます。

これが役立つことを願っています。サンプルコードがどこかにある場合は、より具体的になる可能性があります。

于 2012-11-01T22:30:03.203 に答える