js模态对话框showModalDialog与非模态对话框showModelessDialog

 

在js中要用到弹出框是很常见的事,一般我们只是弹出个警告,提示,用alert就可以了;

如果涉及到输入值,可能要用到confirm,prompt。

但是这还不够,如果弹出的页面需要是一个定制的页面,即弹出y一个html,那怎么办呢?

一般,大家很快想到window.open,是吧?

但是这个函数有个问题,我想让弹出的页面是一个新的窗口,悬浮在原先的页面上。

这个函数是做不到的,现在的浏览器很多页面时想选项卡一样打开的,用这个函数打开的页面会和其他

选项卡并列打开,而并不是你想要的打开一个新的浏览器窗口。

有人说,只要设置浏览器打开页面方式不要在tab选项卡打开就可以了,这也是一个办法,

但是你怎么跟客户解释呢?

貌似实现哪种想要的效果只能换另一种方式了,就是弹出层。

弹出层的原理很简单,就是事先在页面写一个隐藏的div,当弹出时,让它显示即可。

至于让它悬浮在页面上,很容易做到,控制css就可以了。

很多这样的js框架也是这个原理,比如jquery-ui。

你甚至不用自己写代码,到网上找找就能找到很漂亮可用的弹出层代码。

 

貌似这是最完美的解决办法了,其实这样的代码是有问题的。

这样的弹出层是基于一个页面的,因为你先写好的隐藏div就放在某个页面,

当这个页面又被放到其他frame中去的时候,那弹出的div其实还在原先的页面,而没有悬浮在

frame的外面,效果就是你看到的弹出框悬浮在嵌入的frame里面,这样你就必须保证弹出的div大小不能超过

frame的大小,不然就卡在里面了,而且即使div大小没有超过frame,div的移动范围也没法移出frame边框。

这样的效果可以说就是一个大bug!页面的bug是很严重的,因为客户直接可以看到。

所以这种方式是有局限性的,除非你的页面没有用到frame,这个页面就是一个html。

或者你的某个页面足够大,不用考虑会被卡在里面。

 

现在我想说另外一种办法,就是ie有模态对话框showModalDialog与非模态对话框showModelessDialog

 (注:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值