Javascript 如何将页面中的元素的innerText插入模式中的表单中?

Javascript 如何将页面中的元素的innerText插入模式中的表单中?,javascript,forms,events,addeventlistener,hubspot,Javascript,Forms,Events,Addeventlistener,Hubspot,我正在努力完成一项看似简单的任务。然而,我对加载事件的了解不足,使得这比预期的更困难。希望你们中的一个聪明人能帮助我: 我想获取上面页面上的值,并将其插入到“请求更多信息”按钮中的表单中。以下是我认为可以帮助我实现这一目标的脚本: <script> window.addEventListener('load', function () { let itemNumber = document.getElementsByClassName("t

我正在努力完成一项看似简单的任务。然而,我对加载事件的了解不足,使得这比预期的更困难。希望你们中的一个聪明人能帮助我:

我想获取上面页面上的值,并将其插入到“请求更多信息”按钮中的表单中。以下是我认为可以帮助我实现这一目标的脚本:

<script>    
    window.addEventListener('load', function () {
        let itemNumber = document.getElementsByClassName("text-slate")[0].children[0].innerText
        let price = document.getElementsByClassName("actual-price")[0].innerText
        let itemFormField = document.querySelector("input[name='customerinterests']")
        let priceFormField = document.querySelector("input[name='asking_price']")
        itemFormField.value = itemNumber
        priceFormField.value = price
    });
</script>


window.addEventListener('load',函数(){
让itemNumber=document.GetElementsByCassName(“文本板岩”)[0]。子项[0]。innerText
let price=document.getElementsByClassName(“实际价格”)[0]。innerText
让itemFormField=document.querySelector(“输入[name='customerinterests']”)
让priceFormField=document.querySelector(“输入[name='asking_price']”)
itemFormField.value=itemNumber
priceFormField.value=价格
});
窗口加载似乎不是一个足够的事件侦听器,无法用于拾取表单字段。我的印象是,即使表单在页面上实际上不可见,但考虑到它保存在HTML正文中,我仍然可以访问它(这是不正确的吗?)

因此,脚本无法准确地拾取表单字段。因此,这些值不会随提交一起发送。使用chrome开发者工具,我注意到当我在控制台中打开实际的表单并单击表单上我想要的目标元素时,我的QuerySelector才起作用,这让我感到奇怪。但是,当我试图将我想要插入到这些字段中的元素作为目标时,它们开始返回null!因此,当打开表单时,我不能将页面上要插入表单的元素作为目标。当表单未打开时,我无法将要用作表单上值的输入元素作为目标

这里的一个大问题是我没有访问源代码的权限,因此我无法按照我的意愿进行测试。所有这些测试都是通过开发人员工具完成的。它在Shopify页面上

如果有人知道一种方法来完成我的目标,我会非常非常感激。我也明白我的措辞可能非常不清楚,所以我非常愿意尽可能多地澄清


谢谢大家!

不幸的是,该表单是通过iframe加载到modal中的,而iframe(如果您不能访问iframe所来自的实际域上的实际代码)不能从外部影响的内容iframe@Kinglish-谢谢你的回复!你介意把你的评论扩大一点吗?我可以为那些能够访问域上实际代码的人传递适当的信息。这是因为剧本的位置不正确吗?我基本上把我的脚本传递给了负责管理页面的Shopify开发者,所以如果你能想出一种方法让它发挥作用,我确实有能力与他们交谈。我收回了这一切。仔细观察,我发现您实际上是通过调用到iframe中的URL来设置值的。使用Chrome并检查您的表单。您会发现“询问价格”字段是这样插入的。你的问题是这些值没有提交吗?@Kinglish我没有看到任何像你刚才提到的那样的输入。按名称执行命令+f和查询选择器,但没有弹出任何内容。我的问题是,这些值根本没有被填充(据我所知),因此,它们没有与表单一起提交。我将继续寻找,看看是否能找到一个类似于您刚才发布的内容的元素。因为这至少在某种程度上是正确的。值是通过iframe url传入的,即:-字段看起来像这样