我正在从不同的域渲染 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 上的最后一个脚本,以便我可以替换在某些条件下呈现的文件。
最佳答案
跨域完全是一个问题,无论如何,您都没有像您所说的那样被授予访问该 iframe src 的权限。您已从 iframe 向域发出公开请求,根据浏览器的不同,您将面临多个安全障碍。
如果设置 document.domain = 'mydomain.com';在您的父页面和 iframe 中的其他域上请求的页面中,您可能会弄清楚,但您必须具有相同的顶级域(不同的子域都可以工作),并且这在 Internet Explorer 中仍然无法按预期工作根据我的经验。浏览器试图防止的安全问题是跨站点脚本攻击,每个浏览器的处理方式都不同。
关于javascript - 提取 iframe 内的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18710802/