【问题标题】:JQuery cross origin iframe innerHtmljQuery 跨域 iframe innerHtml
【发布时间】:2017-05-09 10:26:14
【问题描述】:

我想读取已加载第三方 URL 的 iframe 内容。

我可以从 iframe 到表单 postMessage 简单字符串。但是想要传递 innerHtml 或者想要从卸载回调中访问它。它总是提供跨域。请告诉我如何访问远程站点的 HTML 并将其发送到表单?

HTML代码如下:

// 这里不知怎么想发送iframe的html......
<p><a href="http://thirdparty_url.com/" target="myFrame">ICWT Page</a></p>

脚本和消息后代码:

<script type="text/javascript">

    function on_load(iframe,mystring, mywindow) {
        var win = (iframe.contentWindow || iframe.contentDocument);

        // or here want to access HTML of iframe and post to form.

        alert(mystring);

        mywindow.postMessage(mystring, "*");
    };

    function listener(event) {
        alert(event.data);
    }

    if (window.addEventListener) {
        window.addEventListener("message", listener, false);
    }
    else {
        attachEvent("onmessage", listener);
    }
</script>

或者将innerHtml从iframe发送到on_load();

< iframe src="index.cfm" name="myFrame" onload="on_load ( this, document.body.innerHtml, window ) ">< /iframe > 

此处为 document.body.innerHtml -> 我试图假设它具有已加载第三方 url 的 iFrame 内容。

【问题讨论】:

  • 您能否编辑您的问题而不是添加 cmets?当然如果与问题有关:)

标签: jquery iframe innerhtml postmessage


【解决方案1】:

也许这个答案有点晚了,但如果我理解你的问题,如果没有加载到你 iframe 中的页面的合作,这是不可能的。如果它在您的域之外的另一个域上,则必须使用 window.postMessage 向您发送其 innerHTML。

https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

编辑:最后,我自己还没有尝试过。但如果 iframe 认为网页来自您自己的服务器而不是其他地方,这可能会起作用...?

How to use Cors anywhere to reverse proxy and add CORS headers

【讨论】:

    猜你喜欢
    • 2011-03-06
    • 2011-12-17
    • 2012-10-17
    • 2023-03-29
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    相关资源
    最近更新 更多