龙鱼家园,个性,交流,技术,专注于网站技术的研究
龙鱼家园 | firefox不支持模态窗口,要用模态窗口怎么办啊?
龙鱼家园
自由飞翔
首页
归档
Sign in
<< 百度有啊如何超越淘宝?
|
负载均衡 - 思考大负载量应用开发 >>
firefox不支持模态窗口,要用模态窗口怎么办啊?
Posted by Admin on June 5, 2009
0 comments
在设计Blog操作流程的时候,计划在添加页面和修改页面都用弹出对话框的方式。添加和修改结束时,点击提交,对话框关闭,同时后面的列表窗口刷新。这样就感觉在用Windows的界面程序一样,界面友好性很好。
但是在实际操作的时候发生了一个问题,IE的对话框技术,对FireFox是不支持的,怎么才能做到既支持IE又支持FireFox的对话框呢?
还好,昨天在研究TinyMCE,里面有支持FireFox的对话框技术可以借鉴。
我写的打开对话框的方法:
function popupDialog(url,width,height){
//showx = event.screenX - event.offsetX - 4 - 10 ; // + deltaX; 这段代码只对IE有效,已经不用了
//showy = event.screenY - event.offsetY -168; // + deltaY; 这段代码只对IE有效,已经不用了
var x = parseInt(screen.width / 2.0) - (width / 2.0);
var y = parseInt(screen.height / 2.0) - (height / 2.0);
var isMSIE= (navigator.appName == "Microsoft Internet Explorer"); //判断浏览器
if (isMSIE) {
retval = window.showModalDialog(url, window, "dialogWidth:"+width+"px; dialogHeight:"+height+"px; dialogLeft:"+x+"px; dialogTop:"+y+"px; status:no; directories:yes;scrollbars:no;Resizable=no; " );
} else {
var win = window.open(url, "mcePopup", "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=yes,modal=yes,width=" + width + ",height=" + height + ",resizable=no" );
eval('try { win.resizeTo(width, height); } catch(e) { }');
win.focus();
}
}
在被打开的对话框里,我是用了上下分Frame的页面,因为在 IE里,对话框是不可以提交的,但是分成Frame后,就可以提交了。
在提交的按钮上,加上这段代码:
function doReload(){
var isMSIE= (navigator.appName == "Microsoft Internet Explorer");
if (isMSIE){
parent.dialogArguments.location.reload();
}else{
parent.opener.document.location.reload();
}
top.close();
}
两种浏览器的打开对话框的方式不一样
IE:window.showModalDialog(url, window, "dialogWidth:300px; dialogHeight:300px; dialogLeft:200px; dialogTop:200px; status:no; directories:yes;scrollbars:no;Resizable=no; " );
FireFox: window.open(url, "mcePopup", "top=200,left=200,scrollbars=no,dialog=yes,modal=yes,width=300,height=300,resizable=no" );
关闭窗口时:
IE: parent.dialogArguments.location.reload();
FireFox:parent.opener.document.location.reload();
还有一个很重要的注意点。FireFox好像不支持对话框的window.close();
所以最后使用的关闭窗口用的是 top.close(); 这个IE、FireFox都支持。
Related posts
50个实用的JavaScript工具
JavaScript是一个功能强大的客户端脚本语言,许多现代化的网站和Web应用程序都会使用到它。JavaScript可以增强用户的体验,并提供丰富的互动式组件和功能。虽然它的语法相当简单,但是对...
JavaScript,只有你想不到
很长时间以来,JavaScript在我眼里都是编程语言中的二等公民。早先,它经常是很多安全问题的发源地,就像是胶水一样,它能把HTML应用与样式粘到一块,可没有人拿它来正正规规地编写程序;这样的情形...
不唐突的JavaScript的七条准则
英文原文:The seven rules of Unobtrusive JavaScript 原文作者:Chris Heilmann 经过多年的开发、教学和编写不唐突的JavaSc...
龙鱼家园专题
微足迹 记录旅行 分享地方特色
WeiBo
Asp.net技术推荐书
Search
Search
I评论
友情链接
微足迹
资质通鉴
译言
代码发芽网
清清月儿
二频
dotnetblogengine
苹果树下
联系我:
leonardleonard@126.com
© Copyright 2012
Categories
android
asp
Asp.net MVC
CSS
flex
H.264
HTML5
IM
Java
javascript
linux
Memcache
Ogre
php
python
TaoBao
ubuntu
wap
Web
XML
安全
产品
盗墓者
房产
管理
互联网
活动思考
技术
技术 - ASPnet
技术 - C++
技术 - WCF
架构
监控
金融
经济
开源
旅游
美食
苹果
其他
汽车
手机相关
数据结构
数据库
退休计划
新闻
移动
游戏
游戏开发
哲学
知识
专题 - BlogNet
专题 - discuz
专题 - LINQ
装修
Tags
101
aion
apple
baidu
chrome
comet
div
formsauthenticationticket
google
http handler
http module
idc
ihttphandler
il
ip过滤
java安装
jolicloud
link
linq
linux
msvcp90d.dll
openapi
partial class
rss
sns
soa
soap
sql
subsonic
thoughtworks
twitter
ultraedit
vs2008
wcf
web
web2.0
webgame
web架构
windows 7
winform
暗时间
百度快照
比尔盖茨
博客
大众4s
多线程
反射
范美忠
防刷票
房屋租售比
高莽
工具
公积金
共同基金
互联网
化妆品
货币
架构
架构师
健康
交规
教育
金融衍生工具
静态化
开源
科斯定理
利率史与风险溢价
枚举器
啤酒,癌症
前端架构师
乔布斯
日全食
塞班
三维地图
视力
手机
水印
睡眠
土地制度
维基
委托
物联网
压缩
业务逻辑
艺术家
异丙酚
异常
应用防火墙
硬盘
游标
支付
装修
自动抓取
左岸读书