http://jsfiddle.net/K4uEs/2/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<body>
<div style="height:600px;width:1000px;position:relative;margin:auto;">
<div style="position:absolute;top:30px;left:50px;height:100px;z-index:9999;background:red;">This is not visible </div>
<iframe src="http://www.irs.gov/pub/irs-pdf/fw4.pdf" height="50%" width="100%"></iframe>
</div>
</body>
</html>
6条答案
按热度按时间eulz3vhy1#
它在Firefox中工作,所以我不知道。
你有没有试过给iframe一个比前一个div小的z索引?
oknwwptz2#
因为你不;在iframe上没有
position:absolute
,你在它前面的div上有它;试试这个:
mepcadol3#
我是通过你内部div的z索引来分析的,你试图将它放置在iframe上。
它不起作用,因为框架(包括IFrame)是原始窗口上的独立子窗口,所以无论你增加多少z索引,div只会在基础窗口中的对象索引中更高,并且永远不会在子窗口中的对象之上。
在你的特定情况下,这将是更复杂的事情,因为子窗口是由不同的程序绘制的(我假设是Acrobat Reader,但这将取决于你的计算机配置)。
另一个你通常无法定位任何东西的元素是OBJECT和EMBED --例如,想想flash,因为这个空间是由不同的程序绘制的。它可能在某些浏览器上工作,但它没有指定工作,并且在大多数浏览器中不工作。
bvuwiixz4#
问题很糟糕,但公认的答案是错误的...所以为了其他偶然发现这个的人的利益...
是的,你可以在iframe上覆盖一个层。
您可能想要这样做的原因:您可以这样做,以混合成一个圆形的矩形嵌入或捕捉点击事件(即通过透明层)。
这只是在iframe元素上放置另一个元素的问题。iframe元素没有什么特殊之处可以阻止这种情况。
然而,这与访问iframe本身内的内容或事件不同。这可能会受到限制,特别是如果iframe窗口的原点与包含窗口的原点不同,并且存在各种可能影响这一点的设置。
但无论如何,是的,覆盖iframe并不是一件大事。这是强制性的演示。
https://codepen.io/matp/pen/WNaVOmq
daolsyd05#
对于其他登陆这里的人来说,2011年的原始问题已经通过现代浏览器和现代HTML 4/5的使用得到了解决,因此最终现代浏览器将按照原始海报的要求正确地将红色框放置在iFrame中的PDF上方。根据2011年的第一个答案,FireFox可能会工作,但其他浏览器,如Internet Explorer按问题可能不会。对于您自己的测试,我建议将链接文件替换为https://africau.edu/images/default/sample.pdf,因为它目前没有CORS问题。
在这里,它的工作原理在IE更换现代边缘III+
每个浏览器可以是不同的绝对位置,所以在Chrome中,它将覆盖侧边栏和标题。
即使PDF由于CORS而不可见,覆盖层仍然应该作为其“绑定”到框架。(在真正的PDF查看器中,通常不可能绑定到PDF页面内容,除非注解编辑器可以为您执行此操作。)
mwkjh3gx6#
PDF只有客户端有插件才能在浏览器打开**!
示例:Acrobat Reader、Chrome内置PDF Reader等。
提示/解答:将您的PDF文件转换为JPG文件,然后使用PageFlipFlash进行阅读。
示例:http://www.revistainpeople.com/edicoes
你可以在Linux上使用这个命令轻松地转换PDF:
convert sample.pdf sample.png
编辑:
如果你使用pageflip(flash),你不会有z-index属性的问题,它会正常工作,因为你会发现客户端上总是adobe flash player,而不是一些讨厌的插件来读取pdf。