0

我正在渲染来自不同域的 iframe。iframe 仅包含脚本(例如)。

有没有办法提取所述 iframe 的内容或至少该 iframe 中的最后一个脚本标签?

我已经尝试过console.log($("iframe").contents().find('script'));,但这返回的长度为 0,因此没有提取脚本。

更新:

<script type="text/javascript" src="/jwplayer/jwplayer.js"></script> 
<script type="text/javascript">jwplayer.key="KEYHERE";</script>
<div id='videoPlayer'></div>
<script type='text/javascript'>
  jwplayer('videoPlayer').setup({
   file: 'VIDEO LOCATION HERE',
   autostart: "true",
    width: "100%",
    height: "100%",
    image: "IMAGE LOCATION HERE"

  });
</script>

这就是 iframe HTML 的样子。我的实际目标是提取 iframe 上的最后一个脚本,以便我可以替换在某些条件下呈现的文件。

4

1 回答 1

2

跨域完全是一个问题,无论如何您都不会像您所说的那样被授予访问该 iframe src 的权限。您已从 iframe 向域发出公开请求,根据浏览器的不同,您将面临多个安全障碍。

如果你设置 document.domain = 'mydomain.com'; 在您的父页面和从 iframe 在其他域上请求的页面中,您可能会弄明白,但您必须拥有相同的顶级域(不同的子域可以工作),这在 Internet Explorer 中仍然无法按预期工作根据我的经验。浏览器试图保护的安全问题是跨站点脚本攻击,每个浏览器的处理方式都不同。

于 2013-09-10T05:24:33.110 回答