【发布时间】:2021-03-30 12:36:49
【问题描述】:
我正在尝试为 Stripe Checkout 页面创建一个简单的 chrome 扩展自动填充。 Chrome 的默认自动填充功能与预期一样,但是当尝试使用我的扩展程序自动填充代码将值输入到表单中时
document.getElementById("ID").value = "value"
该值最初是输入的,但由于多种原因会自动删除,例如在输入之外单击或页面上的任何其他位置都会删除输入的值。我尝试了一些不同的方法,例如触发键盘输入的所有必要事件,例如 keyup、keydown、input、change 等,但我无法获得要粘贴的值。
我相信条带正在使用一些 JS 来检查发送到输入的事件是否受信任,如果不是,它正在删除值。出于这个原因,我尝试使用 Chromes Debugger API 将命令直接发送到浏览器。我找到了一个似乎可以满足我需要的命令。 “Input.dispatchKeyEvent”命令似乎是我所需要的,但我没有看到一种方法来指定键被发送到的元素。
chrome.debugger.sendCommand({tabId:TAB_ID}, "Input.dispatchKeyEvent",{type:"char"})
如何防止值被删除? 有没有办法使用调试器将受信任的关键事件发送到页面上的特定元素?
可以在此处找到条纹结帐页面的示例单击立即付款以被带到测试页面 https://demo.wpsimplepay.com/stripe-checkout/
命令文档 https://chromedevtools.github.io/devtools-protocol/1-3/Input/#method-dispatchKeyEvent
【问题讨论】:
标签: javascript html google-chrome-extension stripe-payments google-chrome-devtools