1

我正在尝试编写一些代码来完成一些非常简单的事情。我以前从未使用过 PayPal 按钮,这造成了一些困难。

我之前可以使用 document.getElementById 或 document.getElementsByName() 模拟按钮单击,但是,我在上面尝试提交的表单没有名称或 id,所以我不知道如何引用在我的代码中。

我正在尝试使用 Javascript 编写一个简短的 chrome 扩展程序,该扩展程序将在页面上找到 paypal 表单/按钮(我不拥有或无法控制),并在我无需单击它的情况下提交它。任何指导/链接将不胜感激。

4

3 回答 3

1

看起来你的按钮有一个名字,所以你可以使用.getElementsByName()

var btn = document.getElementsByname('submit')[0]

如果您可以访问jQuery,或者您可以将jQuery添加到您的项目中,那么

var btn = jQuery('input[name="submit"]')
于 2013-04-06T01:32:04.643 回答
0

使用 jQuery 会更容易,但是使用原生 js,你可以这样做:

function getPaypalForms()
{
  var matchingElements = [];
  var allForms = document.getElementsByTagName('form');
  for (var i = 0; i < allForms.length; i++)
  {
    if (allForms[i].getAttribute('action') == 'https://www.paypal.com/cgi-bin/webscr')
    {
      // Element exists with attribute. Add to array.
      matchingElements.push(allElements[i]);
    }
  }
  return matchingElements;
}

有很多方法可以编辑上面的这个函数,以更好地满足您的目的。您可以对其进行编辑以仅从这些表单中收集提交按钮,或者对其进行重构以接受字符串以匹配属性和值。但是,就像我说的,使用 jquery 会容易得多:

$('form[action="https://www.paypal.com/cgi-bin/webscr"]');
于 2013-04-06T01:17:39.137 回答
0

根据您的更新,首先:不要这样做,除非您试图骗取人们的钱。在这种情况下,不要这样做=)(我不是律师,但我很确定贝宝可以“好吧,你没有点击按钮,你自动化了它。现在某人的网站让你花了 500 美元你不想。强硬”)。也就是说:document.getElementsByTagName("form"),然后过滤 getAttribute("action")。

于 2013-04-06T01:52:24.020 回答