PDF将弹出窗口遮挡的问题(<div> layer on top of PDF)

      之前也做过在线显示PDF的任务,这次的比较棘手:PDF的组件将弹出窗口挡住了。

      想过好几种解决办法,最后终于找到一个比较好的解决办法:

      下面重新理一理这两天尝试过的一些方法:

      (1)改变PDF的样式,就是使用z-index来控制。

        这无疑是首先想到的方法。无奈从网上搜了很久,也不知道用来显示PDF的<object>标签是个什么样式。在它外面设置一个比dialog小的z-index也不对。于是此方法告吹。

       (2)http://stackoverflow.com/questions/593176/div-layer-on-top-of-pdf 给了我一个解决方法,于是这个bug开始有点眉目。

          从网上看到这么一段话:在IE5.5版本中,IFrame就开始作为一个Windowless元素使用了,使用z-index就可以将DIV覆盖IFrame,但是如果IFrame中有Windowed对象,如ActiveX控件时,IFrame就变成一个Windowed元素,DIV就只能在IFrame后边混了。应该是解释为什么同样是iframe,PDF还是会把div遮挡住,stackFlow里面给出了一个解决方法。

          但此方法在我这里暂时行不通。行不通的症结在于:弹出的dialog始终位于窗口正中央,如何定义一个iframe,和他同样大小 且 也位于正中央,这是个问题。并且,如何对各个分辨率的电脑都适用也是个问题。

       (3)借用第三个的原理,但是可以不设置position:absolute 和 z-index。这个方法就是:如果有一个dialog弹出,就定义一个空白的dialog用iframe包住先于他弹出,借用他来遮盖住底下的PDF。

         事实证明这个方法是可行的。把空白的iframe定义成dialog的好处在于:不用操心这个遮挡层的弹出位置在哪里,而且容易操作。

 

         这个bug出现最初,我是先把pdf部分隐藏掉,需要的时候再显示出来。但这个必然用户是不接受的。后来也曾想过,既然这pdf的样式改不了,那么当dialog出现的时候,将pdf部分变成图片,静态显示在下面可不可以。但是这个方法需要导入一些jar包,对整体影响比较大,于是也没有实行这个计划。

 

        解决了这个bug,又重新认识了 iframe, 学问还是很大的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值