繁体   English   中英

检索没有名称或ID的元素

[英]Retrieving element with no name or id

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

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

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

看起来您的按钮有一个名称,因此您可以使用.getElementsByName()

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

如果您有权使用jQuery,或者可以将jQuery添加到您的项目中,那么

var btn = jQuery('input[name="submit"]')

使用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;
}

您可以通过多种方法来编辑此功能,以更好地满足您的目的。 您可以对其进行编辑以仅从这些表单中收集提交按钮,或对其进行重构以接受与attr和value匹配的字符串。 但是,就像我说的那样,使用jquery会容易得多:

$('form[action="https://www.paypal.com/cgi-bin/webscr"]');

根据您的更新,首先:不要这样做,除非您试图用钱骗人。 在这种情况下,请勿执行此操作=)(我不是律师,但我很确定贝宝可以继续前进“好吧,您没有单击按钮,而是对其进行了自动化。现在有人在您的网站上花费了您500美元不想。强硬”)。 也就是说:document.getElementsByTagName(“ form”),然后对getAttribute(“ action”)进行过滤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM