访问iFrame中的元素返回null

时间:2012-04-26 15:48:30

标签: javascript jquery iframe

我有一个发布到iFrame的表单。 iFrame中的网站是我无法控制的。但是,我想将iframe中的一些图像的显示设置为“无”。

<form id="testForm" method="post" target="testFrame">
  <input type="hidden" name="RequestXML" ID="RequestXML" value="<Request><RedirectURL>Account/TokenRequest</RedirectURL></Request>"
</form>

<iframe id="testFrame" name="testFrame" frameborder="0" style="width:1000px;height:500px">    </iframe>

这是我在页面顶部的脚本:

<script type="text/javascript">
  $(function () {
  $("#testForm").attr("action", "http://externalwebsite.aspx");
  $('#testForm').submit();

  var iframe = document.getElementById('testFrame');
  var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
  //alert($("#testFrame").contents().find("body").html());
  //alert(innerDoc.innerHTML);
  });
</script>

我的警报在Chrome,IE和Firefox中都返回null。访问iframe内部元素的最佳方法是什么? (在Chrome中,当我尝试“检查元素”并查看html时,我甚至看不到该网站的html)

顺便说一下,我在MVC4项目中做了这一切

2 个答案:

答案 0 :(得分:0)

假设这不是跨域问题,请尝试:

var body = $('#testFrame').contents().find('body');

答案 1 :(得分:0)

由于此跨域您有两种选择。

如果您有权访问iframe代码,那么您可以在其中放置XDM代码,也许easyXDM可能有帮助。

你必须去服务器端并获得你的php / asp.net等后端去获取页面并获得它需要的数据。