【问题标题】:Extract script inside an iframe在 iframe 中提取脚本
【发布时间】:2013-09-13 16:24:58
【问题描述】:

我正在渲染来自不同域的 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 上的最后一个脚本,以便替换在某些条件下呈现的 file

【问题讨论】:

  • $('iframe script').text()。工作吗?
  • 它不返回任何东西。
  • 发布 iframe 内容的 sn-p。
  • 谢谢@Saravana 我已经更新了上面的问题。
  • iframe 中的文档是否来自另一个域?如果是这样,请看这里:stackoverflow.com/questions/3083112/…

标签: javascript jquery html iframe


【解决方案1】:

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

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

【讨论】:

  • 进一步阅读.. 我知道跨域确实是一个问题。无论如何,无论如何我可以做到这一点吗?谢谢你的回答
  • 不幸的是,您想不惜一切代价避免这种解决方案。这是我的经验,这是解决问题的第一步,您是否拥有或有权访问这两个域?
  • 我不拥有另一个域,因为它由我们的另一家附属公司拥有,因此如果我想访问它可以与他们交谈。
  • 好吧,即使可以访问,您仍然会遇到使用不同浏览器的障碍,我只会尝试加载 iframe,复制您需要提取或重新加载 iframe 的脚本以更改内容或脚本
猜你喜欢
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
  • 2017-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多