我需要在IFRAME加载完成后执行回调.我无法控制IFRAME中的内容,因此我无法从那里触发回调.
这个IFRAME是以编程方式创建的,我需要将其数据作为回调中的变量传递,并销毁iframe.
有任何想法吗?
编辑:
这就是我现在拥有的:
function xssRequest(url, callback)
{
var iFrameObj = document.createElement('IFRAME');
iFrameObj.src = url;
document.body.appendChild(iFrameObj);
$(iFrameObj).load(function()
{
document.body.removeChild(iFrameObj);
callback(iFrameObj.innerHTML);
});
}
Run Code Online (Sandbox Code Playgroud)
在iFrame加载之前进行此回调,因此回调没有返回数据.
当我使用以下代码创建iframe时:
<iframe src="mypage.html" style="border: 0; width: 100%; height: 100%">Your browser doesn't support iFrames.</iframe>
Run Code Online (Sandbox Code Playgroud)
iframe并没有完全消失 - 围绕iframe的10px白色"边框".我该怎么解决这个问题?
这是问题的图像:
所以这是"我如何让第三方cookie在Safari中工作"的第十五次复仇,但我再次提问,因为我认为比赛场地已经发生了变化,可能是在2012年2月之后.获得第三名的标准技巧之一Safari中的派对cookie如下:使用一些javascript POST到隐藏的iframe.它(曾经)欺骗Safari认为用户已经与第三方内容进行了交互,因此允许设置cookie.
我认为这个漏洞已经在温和的丑闻之后被关闭,据透露谷歌正在利用其广告中的这一技巧.至少,在使用这个技巧时,我完全无法在Safari中设置cookie.我发现了一些随机的互联网帖子,声称Apple正在努力弥补漏洞,但我还没有发现任何官方消息.
作为后备,我甚至尝试重新设计主要的第三方框架,以便在内容加载之前必须单击按钮,但即使是这种级别的直接交互也不足以融化Safari冷酷的心脏.
那么有人确切知道Safari是否确实关闭了这个漏洞?如果是,是否有其他解决方法(除了在每个请求中手动包含会话ID)?
我正在尝试从JavaScript创建一个iframe并用任意HTML填充它,如下所示:
var html = '<body>Foo</body>';
var iframe = document.createElement('iframe');
iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html);
Run Code Online (Sandbox Code Playgroud)
我希望iframe
然后包含一个有效的窗口和文档.但是,情况并非如此:
> console.log(iframe.contentWindow);
空值
亲自试试:http://jsfiddle.net/TrevorBurnham/9k9Pe/
我在俯瞰什么?
我将一些HTML加载到iframe中但是当引用的文件使用http而不是https时,我收到以下错误:
[已阻止] {current_pagename}的页面从{referenced_filename}运行了不安全的内容
有什么方法可以关闭它或以任何方式解决它?
iframe没有src
属性,内容使用以下方式设置:
frame.open();
frame.write(html);
frame.close();
Run Code Online (Sandbox Code Playgroud) 使用jQuery和jQuery,我添加一个带有youtube网址的iframe来在网站上显示视频但是从youtube加载到iframe中的嵌入代码没有wmode ="Opaque",因此页面上的模式框显示在youtube视频下方.
任何想法如何解决问题?
我正在阅读这篇标题为"你能让iFrame响应吗?"的stackoverflow帖子,其中一条评论/答案引领我走向这个jfiddle.
但是当我尝试实现HTML和CSS以满足我的需求时,我没有相同的结果/成功.我创建了自己的JS小提琴,所以我可以告诉你它对我来说不起作用.我确定它与我正在使用的iFrame类型有关(例如,产品图像可能需要响应或其他什么?)
我主要担心的是,当我的博客读者在他们的iPhone上访问我的博客时,我不希望一切都在x宽度(我的所有内容都是100%),然后iFrame行为不端,是唯一更广泛的元素(因此坚持超出所有其他内容 - 如果这是有道理的??)
无论如何,有谁知道为什么它不起作用?谢谢.
这是MY JSFIDDLE的HTML和CSS(如果你不想点击链接):
<div class="wrapper">
<div class="h_iframe">
<!-- a transparent image is preferable -->
<img class="ratio" src="http://www.brightontheday.com/wp-content/uploads/2013/07/placeholder300.png" />
<iframe frameborder='0' height='465px' width='470px' scrolling='no' src='http://currentlyobsessed.me/api/v1/get_widget?wid=30&blog=Brighton+The+Day&widgetid=38585'
frameborder="0" allowfullscreen></iframe>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是附带的CSS:
.wrapper {
width: 100%;
height: 100%;
margin: 0 auto;
background: #ffffff;
}
.h_iframe {
position: relative;
}
.h_iframe .ratio {
display: block;
width: 100%;
height: auto;
}
.h_iframe iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: …
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现水平多级下拉菜单.紧接着(垂直)菜单,我通过iframe嵌入了YouTube视频.如果我将鼠标悬停在Firefox中的某个主级别导航项上,则会在视频顶部显示正确的下拉菜单.
但是,在Chrome和IE9中,在菜单和iframe之间的小空间区域中只能看到下拉条的一小部分.其余部分似乎是iframe的背后.
问题似乎与YouTube视频有关,而不是 iframe.为了测试,我将iframe定位在另一个网站而不是视频,并且下拉菜单工作正常,即使在IE中也是如此.
z-index:-999 !important;
在iframe上放置了这个问题仍然会发生?是否有一些内嵌CSS,YouTube嵌入代码包含在某种程度上压倒一切?
问题在于,当您必须使用IFrame将内容插入网站时,那么在现代网络世界中,预计IFrame也会响应.从理论上讲它很简单,只需要使用<iframe width="100%"></iframe>
或设置CSS宽度,iframe { width: 100%; }
但在实践中它并不是那么简单,但它可以.
如果iframe
内容完全响应并且可以在没有内部滚动条的情况下自行调整大小,那么iOS Safari将调整大小而iframe
没有任何实际问题.
如果您考虑以下代码:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9,10,11" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Iframe Isolation Test</title>
<style type="text/css" rel="stylesheet">
#Main {
padding: 10px;
}
</style>
</head>
<body>
<h1>Iframe Isolation Test 13.17</h1>
<div id="Main">
<iframe height="950" width="100%" src="Content.html"></iframe>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
使用Content.html:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9,10,11" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Iframe Isolation Test - Content</title>
<style type="text/css" rel="stylesheet">
#Main {
width: …
Run Code Online (Sandbox Code Playgroud) 有些网站的代码是"打破" IFRAME
外壳,这意味着如果页面A
作为IFRAME
父页面内部加载,P
一些Javascript A
会将外部窗口重定向到A
.
通常这个Javascript看起来像这样:
<script type="text/javascript">
if (top.location.href != self.location.href)
top.location.href = self.location.href;
</script>
Run Code Online (Sandbox Code Playgroud)
我的问题是:作为父页面P
的作者而不是内页的作者,A
我A
该如何防止这种突破呢?
PS在我看来,它应该是一个跨站点安全违规,但事实并非如此.