首页 > 解决方案 > jQuery:获取像检查这样的元素而不是源代码

问题描述

我正在构建一个 chrome 扩展程序,用于从 BigCommerce 管理员那里获取资金。但是 BigCommerce 管理员似乎是由 angular 构建的(我不知道 angular 是如何工作的),并且我无法从源代码中获取捕获按钮元素,该元素是由 angular iframe 动态添加的,如 ajax。

<iframe id="content-iframe" class="cp-iframe" frameborder="0"
        ng-idle-watch-iframe="" iframe-manager="" post-message=""
        ng-class="{ 'ui-hidden': !(MainCtrl.isIframeActive('cp')) }"
        name="cp-iframe" ui-interaction="">
</iframe>

我可以获得订单详细信息页面,例如:your-bigcommerce-domain.com/admin/order/{order_id}/details

结果如下:

在此处输入图像描述

我们可以找到“获取资金”按钮,但它不可点击。

我只能通过浏览器检查看到可点击的捕获按钮。

在此处输入图像描述

jquery 是否可以从“检查”而不是源代码中获取元素?

在此处输入图像描述

捕获资金的操作链接是
your-domain.com/admin/order/{order-id}/capture-funds?authenticity_token=b3d4*************51b46abbdc1d9

但我不知道authenticity_token 来自哪里。

实际上,我已经尝试过以下方法来等待 chrome 浏览器完成加载所有元素:

setTimeout(function()
{
    console.log($('button.capture-trigger').length);
    $('button.capture-trigger').click();
}, 6000);

但它仍然无法正常工作。请问您还有其他想法吗?

标签: javascriptjqueryangularjsgoogle-chrome-extensionbigcommerce

解决方案


不幸的是,您无法从 Chrome 扩展程序访问 iframe 的 DOM(例如,请参阅从 chrome 的扩展程序内容脚本访问 iframe 内容)。


推荐阅读