2

私はブラウザゲームでいくつかのことを自動化するためにユーザースクリプト(javascript / jquery)を書いています。商品を割引価格で購入できるオークションがあります。33%割引のときに自動的に商品を購入するスクリプトが欲しいです。

スクリプトはオークションのURL(greasemonkey)で実行され、33%以上の割引がある商品があるかどうかを確認します。その場合は、その行のボタンを押して商品を購入します。

私が今直面している問題は、ボタンを押したら、アラートボックスを介して商品を購入することを確認する必要があるということです。これを自動化する方法はありますか?

私はグーグルでスタックオーバーフローをチェックしましたが、javascript/jqueryでは不可能だと言われています。これは本当に本当ですか?つまり、私がプレイしているブラウザゲームで商品の購入を自動化することは基本的に不可能です。アラートボックスで[OK]をクリックするのと同じであるため、スクリプトで自動的にEnterキーを押すようにすることを考えていました。しかし、それも不可能だと彼らは言います。だから今私は疑問に思っています:これを自動化する方法はありますか?

これはボタンの背後にあるコードです:

<input id="buybutton_3204781" class="button" type="button" onclick="if(confirm('Wil je deze producten kopen?')){document.submitForm.BuyAuctionNr.value=3204781; document.submitForm.submit();}{return false;}" value="Kopen">

編集:

ボタンのクリックで属性を変更することで動作します!! 使用されるコードは次のとおりです。

$('element')。attr('some attribute'、'some attributes value');

今すぐ閉鎖することができます、たくさんの人に感謝します、あなたの助けに感謝します!!

4

4 に答える 4

4

ブラウザによっては、以下のように上書きできる場合がありますwindow.confirm

(function() {
   'use strict';

    // Might was well save this in case you need it later
    var oldConfirm = window.confirm;
    window.confirm = function (e) {
        // TODO: could put additional logic in here if necessary
        return true;
    };

} ());

大規模なテストは行いませんでしたが、少なくともオーバーライドwindow.alertして firebug にすることはできました。window.confirm

スクリプトがすでにアラート/確認への参照を取得している場合、これは役に立たないことに注意してください(などvar a = window.confirm; a('herp');

別のアプローチは、自動クリックしているボタンの機能をオーバーライドするか、xhr を使用して手動で AJAX / POST を発行することです。

于 2012-12-16T20:33:38.040 に答える
1

あまり変更せずにこれを試すことができます

$(".button").each(function() {
  if (this.id.indexOf("buybutton")!=-1) this.onclick=function() {
    document.submitForm.BuyAuctionNr.value=this.id.replace("buybutton_","");
    document.submitForm.BuyAuctionNr.submit();
  } 
});

私は使用thisしていますonclickが、既存のonclickハンドラーを置き換えたいので、追加しません

購入したいだけの場合は、IDを取得し、ユーザースクリプトを使用してフォームを送信してください

私はあなたが割引をどのように知っているかわからないので、例は次のようになります

$(".button").each(function() {
  if (this.id.indexOf("buybutton")!=-1) {
    var ID = this.id.replace("buybutton_","");
    if ($("#discount_"+ID).val()<30) {
      document.submitForm.BuyAuctionNr.value=ID;
      document.submitForm.BuyAuctionNr.submit();
    }
  } 
});

どちらが最初に見つかったものを送信します。送信を$.getに置き換えるか、投稿してすべての割引されたものを送信します

于 2012-12-16T20:21:38.320 に答える
1

JavaScript を使用すると、HTML および JavaScript コードを好きなように変更できます。

OnClick 関数を変更することをお勧めします

<input id="buybutton_3204781" class="button" type="button" 
onclick="
if(confirm('Wil je deze producten kopen?'))
{
    document.submitForm.BuyAuctionNr.value=3204781; 
    document.submitForm.submit();
}
{
    return false;
}" value="Kopen">

単になる

<input id="buybutton_3204781" class="button" type="button" 
    onclick=
    "document.submitForm.BuyAuctionNr.value=3204781; 
     document.submitForm.submit();" 
value="Kopen">
于 2012-12-16T20:58:53.530 に答える
-1

このような要件を実現するには、元のシステムアラートをjqueryモーダルに置き換える必要があります。

以下は、jqueryモーダルを紹介するためのチュートリアルです。

http://www.jacklmoore.com/notes/jquery-modal-tutorial

于 2012-12-16T20:11:21.550 に答える