2

我正在编写一个用户脚本(javascript/jquery)来自动化浏览器游戏中的一些事情。有一个拍卖可以以折扣价购买产品。我想要一个在有 33% 折扣时自动购买商品的脚本。

该脚本在拍卖的 url (greasemonkey) 上运行,然后检查是否有至少 33% 折扣的产品 - 如果是这种情况,那么它将按下该行中的按钮来购买产品。

我现在面临的问题是:按下按钮后,您必须通过警告框确认您要购买商品。有没有办法自动化这个?

我用谷歌搜索并检查了stackoverflow,人们说javascript/jquery不可能。真的是这样吗?这意味着在我正在玩的浏览器游戏中自动购买商品基本上是不可能的。我正在考虑让脚本自动按 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">

编辑:

万岁,它通过更改按钮的属性 onClick 来工作!这是使用的代码:

$('元素').attr('一些属性','一些属性值');

现在可以关闭了,非常感谢各位,感谢您的帮助!!

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并在萤火虫中。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();
  } 
});

我使用thisandonclick因为我想替换现有的 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();
    }
  } 
});

它将提交它找到的第一个。将 submit 替换为 $.get 或 post 以提交所有打折的东西

于 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 modal 替换原始系统警报才能实现这样的要求。

下面是介绍jquery modal的教程:

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

于 2012-12-16T20:11:21.550 回答