将文本复制到 iframe - JS

Posted

技术标签:

【中文标题】将文本复制到 iframe - JS【英文标题】:Copy text into iframe - JS 【发布时间】:2019-01-15 13:52:54 【问题描述】:

我有一段时间无法解决这个障碍,尽管这感觉是一件相对简单的事情。

我正在尝试使用页面上的一串文本预先填写表单字段。但是表单是在一个 iframe 中,这使得它变得困难。

这里是page in question,但是您不会从链接中获得太多信息,因为您的动态内容将是空的。此屏幕截图可能会更好地解释:http://prntscr.com/kbqoak

它会从“webinartitle”类中获取文本并插入表单域(http://prntscr.com/kbqqp4)。

我的同事帮助我编写了所需的 javascript

$(function()
$('iframe').contents().find('.refer_webinar input').val($('.webinartitle').text());
);

按照指示,我已将其放在 iframe 之外,但不幸的是,该值仍未到达那里。这是解释情况的 2 个屏幕截图:prntscr.com/kbtp4u / prntscr.com/kbtper

有什么想法我在这里做错了吗?为什么它不起作用?

提前感谢您提供的任何建议!

【问题讨论】:

【参考方案1】:

不幸的是,文档不可能与自身内部的沙盒文档进行通信,也就是 iframe 的内容。

您不能将 jQuery 应用于其他域 iframe。由于安全原因,它已被阻止。

查看这个以获得更多解释。

https://en.wikipedia.org/wiki/Same-origin_policy

【讨论】:

哎哟。太糟糕了。但至少解释为什么它不起作用。谢谢你的解释。您知道我可以使用其他任何解决方案来完成这项工作吗? 当然可以,不好意思直言。基本上,与来自另一个域、子域、端口等的 iframe 的内容进行通信的唯一方法是通过 postMessage API,这当然需要 iframe 内的文档来监听您的消息。这是另一篇有用的 wiki 文章 en.wikipedia.org/wiki/Web_Messaging

以上是关于将文本复制到 iframe - JS的主要内容,如果未能解决你的问题,请参考以下文章

javascript JS将文本复制到ClipBoard

如何扩展 iFrame/将内容从 iFrame 移动到 div? [复制]

如何将 iframe 的内容复制到弹出窗口中?

将内容从 iframe 复制到 div

js实现将文本复制到剪贴板的现代方法

vue js如何将值从文本框复制到div