如何使用javascript / jquery自动按ENTER键/确认警告框

时间:2012-12-16 20:08:35

标签: javascript jquery userscripts

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

脚本在拍卖的网址上运行(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">

编辑:

万岁,它的工作原理是改变点击按钮的属性! 这是使用的代码:

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

现在可以关闭,非常感谢你们,感谢你的帮助!!

4 个答案:

答案 0 :(得分:2)

根据浏览器的不同,可能会覆盖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;
    };

} ());

我没有进行任何广泛的测试,但我至少能够在firebug中覆盖window.alertwindow.confirm

请注意,如果他们的脚本已经获得对警报/确认的引用(例如var a = window.confirm; a('herp');

,则无法帮助您

另一种方法是覆盖您自动点击按钮的功能,或使用某些xhr手动发出AJAX / POST。

答案 1 :(得分: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();
  } 
});

我使用thisonclick,因为我想替换现有的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替换提交或发布以提交所有打折的东西

答案 2 :(得分: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">

答案 3 :(得分:-1)

您必须通过jquery模式替换原始系统警报才能达到此要求。

以下是介绍jquery模式的教程:

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