Javascript 在外部网站上预填充输入/表格

Javascript 在外部网站上预填充输入/表格,javascript,forms,http,Javascript,Forms,Http,我正试图找到一种方法,用可能使用Javascript的数据来预先填充外部HTML表单/输入?我没有自己的网站上的形式,所以这使事情很困难。有什么方法可以做到这一点吗?更新 现在,这几乎肯定帮不了你。但是,为了完整性起见:有一种方法可以与iframe通信,即使它是交叉源代码:postMessageAPI 它的工作方式很简单。在您的网站上,您可以: let win = document.getElementById("iframe").contentWindow; win.pos

我正试图找到一种方法,用可能使用Javascript的数据来预先填充外部HTML表单/输入?我没有自己的网站上的形式,所以这使事情很困难。有什么方法可以做到这一点吗?

更新 现在,这几乎肯定帮不了你。但是,为了完整性起见:有一种方法可以与iframe通信,即使它是交叉源代码:
postMessage
API

它的工作方式很简单。在您的网站上,您可以:

let win = document.getElementById("iframe").contentWindow;
win.postMessage(JSON.stringify({ key: value }));
iframe必须监听
postMessage
,如下所示:

document.addEventListener("message", function(e){
        console.log("Domain:", e.domain, "sent", e.data);
});
当然,你必须联系
iframe
开发人员,安排他们听你的帖子,并且用你作为
数据发送的内容预先填写表单。在许多情况下,这是不现实的。但这是可能的


访问不在同一域中的iframe的任何元素是最重要的

但是,如果要在同一个域上获取页面,则很容易预先填充表单

父帧可以使用DOM API访问
元素。让我们设置常量:

const iframe = document.getElementById('iframeId');
const innerDoc = iframe.contentDocument || iframe.contentWindow.document;
您必须了解要嵌入的页面的结构。假设您这样做,使用
innerDoc
可以访问需要预填充的字段

让我们举个例子。假设
中的表单如下所示

<form>
  <label>Some field 
    <input name="an-input" type="text"/>
  </label>
</form>
更新 现在,这几乎肯定帮不了你。但是,为了完整性起见:有一种方法可以与iframe通信,即使它是交叉源代码:
postMessage
API

它的工作方式很简单。在您的网站上,您可以:

let win = document.getElementById("iframe").contentWindow;
win.postMessage(JSON.stringify({ key: value }));
iframe必须监听
postMessage
,如下所示:

document.addEventListener("message", function(e){
        console.log("Domain:", e.domain, "sent", e.data);
});
当然,你必须联系
iframe
开发人员,安排他们听你的帖子,并且用你作为
数据发送的内容预先填写表单。在许多情况下,这是不现实的。但这是可能的


访问不在同一域中的iframe的任何元素是最重要的

但是,如果要在同一个域上获取页面,则很容易预先填充表单

父帧可以使用DOM API访问
元素。让我们设置常量:

const iframe = document.getElementById('iframeId');
const innerDoc = iframe.contentDocument || iframe.contentWindow.document;
您必须了解要嵌入的页面的结构。假设您这样做,使用
innerDoc
可以访问需要预填充的字段

让我们举个例子。假设
中的表单如下所示

<form>
  <label>Some field 
    <input name="an-input" type="text"/>
  </label>
</form>

这是模糊的。您是否打算将外部网站作为
加载到您自己的网页中?否则,您无法在任何任意客户端上操作DOM。我对使用iframe没有问题这是模糊的。您是否打算将外部网站作为
加载到您自己的网页中?否则,您无法在任何任意客户端上操作DOM。我对使用iframe没有任何问题这将仅在我们公司内部使用。我们目前每天手动输入几次vin编号,点击我们网站上的链接并在autozones网站上预填充链接会容易得多。有什么办法可以解决这个问题吗?“未捕获的DomeException:用原点阻止了一个框架”请参见文章的第一行。你会得到这样的结果,因为你不被允许操作一个不属于你的域的站点的DOM(内部)。这是所有现代broswers的一项安全功能,您实在无法绕过它:(是否有我们可以在内部使用的浏览器或插件?这将仅在我们公司内部使用。我们目前每天手动输入几次vin编号,这样可以更轻松地单击我们网站上的链接,并让它在autozones网站上预填充链接。有什么办法解决此问题吗?“Uncaught DomeException:阻止了一个带有原点的框架”见文章的第一行。你会得到它,因为你不被允许操纵一个不属于你的域的站点的DOM(内部)。这是所有现代broswers的安全特性,你真的无法绕过它:(是否有我们可以在内部使用的浏览器或插件?