无法获取iframe内容

时间:2012-07-04 00:16:16

标签: javascript jquery html

我知道有很多关于它的主题,但它们都没有奏效。我只需要获取iframe内容(不是源代码)。

我有一个表单,它将一些参数发布到另一个服务器,然后将其定位到iframe(位于同一页面上)。所以我在没有页面刷新的情况下收到了在我的iframe中存储的服务器响应代码:

<form name='vin_form' id='file_upload_form' action='*****' method='post'>
    <input name='name1' value='value1'>
    <input name='name2' value='value2' type='hidden'>
    <input name='name3' value='value3' type='hidden'>
    <div onclick=\"document.getElementById('file_upload_form').target = 'upload_target'; document.vin_form.submit();\">Send form</div>
</form>";

<iframe id='upload_target' name='upload_target'></iframe>

要获取iframe内容我使用了所有内容,但没有任何效果:

jQuery('#upload_target').load(function()
    {
            alert(jQuery('#upload_target').contents().find('body').html());

            var myIFrame = document.getElementById('upload_target');
            var content = myIFrame.contentWindow.document.body.innerHTML;
            alert(content);

            alert(window.frames.upload_target.document.body);
    }
);

我读到了“同源策略”,但我认为在我的情况下不应该禁止,因为我可以通过url访问该页面并阅读所有代码,那么为什么我不能以编程方式进行呢? / p>

P.S。:是否有其他方法可以从另一台服务器获取表单响应代码? (php curl由于某些站点框架防御而无效)

1 个答案:

答案 0 :(得分:1)

*更新 - 试试这个:

 var t = document.getElementById("upload_target");
 var y =( t.contentWindow || t.contentDocument);
 alert(y.document.body.innerHTML)