模式窗口处理结果的两种方式,哪一种更好

问题描述

打开一个模式窗口,对结果有两种处理方式,一种是用returnValue,另一种是传递一个对象给模式窗口,让模式窗口处理结果父窗口: <html><head><script language="javascript">function callback(obj){alert(obj.hi);}function opendialog1(){window.showModalDialog('modalDialog.html',{callback:callback},'');}function opendialog2(){var diaArgs = window.showModalDialog('modalDialog.html','','');callback.apply(this,diaArgs);}</script></head><body><button onclick="opendialog1();">打开模态窗口:传递对象给模式窗口调用</button><button onclick="opendialog2();">打开模态窗口:获取模式窗口的returnValue</button></body></html>   模式窗口:<html><head><script language="javascript">function cback1(){window.close();window.dialogArguments.callback.apply(this,arguments);};function cback2(){window.returnValue=arguments;window.close();};</script></head><body><button onclick="cback1({hi:'方式一:模式窗口调用了父类方法'})">方式一:调父类方法</button><button onclick="cback2({hi:'方式二:使用了模式窗口的returnValue'})">方式二:使用returnValue</button></body></html> 这两种方式到底有什么优劣?方式二说起来更OO,但是想想方式一也未尝不可,就是一个方法调用另一个方法,并把一个回调函数传给它,在javascript里这种方式很常见啊,为什么说不好?说不好的能给个充足的理由吗?

解决方案

基本现在正常点 都是div了
解决方案二:
我的意见就是哪种都别用. 这东西很多浏览器都不支持.
解决方案三:
个人觉得returnValue比较好,毕竟是模态窗口,使用起来也更容易理解~并且和父页面耦合度更低,也许复用性更好吧。不过方法1也有个好处。就是如果使用returnValue的话,当使用红叉关闭窗口时父页面需要处理returnValue为undefined的情况,比较讨厌,用方法2,点X就关了,没调用回调也就每调用了。。。个人意见~~

时间: 2024-08-02 22:49:36

模式窗口处理结果的两种方式,哪一种更好的相关文章

mybatis集成spring有4种方式,哪种方式好?

问题描述 mybatis集成spring有4种方式,哪种方式好? mybatis集成SPRING大概有3,4种方式,架构师给过来的架构是用继承SqlSessionDaoSupport方式的,个人觉得这样比较麻烦,还是用MapperScannerConfigurer的方式比较好.有没有大神给分析分析?

修改和创建DOM节点两种方式的4种优化方案

原文:<Speeding up JavaScript: Working with the DOM>作者:KeeKim Heng, Google Web Developer翻译:http://www.blogjava.net/emu/archive/2010/03/01/314185.html 在我们开发互联网富应用(RIA)时,我们经常写一些javascript脚本来修改或者增加页面元素,这些工作最终是DOM--或者说文档对象模 型--来完成的,而我们的实现方式会影响到应用的响应速度. DOM

200分请教,年未全分了。left join和查询 ibatis 好 两种方式,哪种方式更好。

问题描述 有两张表:表一book表字段名类型idintnamevarchar(200)表二book_desc表字段名类型idintbidint--表一的外建1对1的关系contentvarchar(2000)数据库是mysql,数据量大约有两万多条idnamecontent1我的父亲我的父亲描述的是....我现在想把此表展示出来,用的是ibatis现在有两种一种是在sqlmap里将<selectid="getBookListByQuery"parameterClass="

搜索引擎营销的两种方式:PPC与SEO

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 搜索引擎营销(也称SEM)主要有两种方式:一种是PPC,另一种是SEO.PPC,搜索引擎竞价排名广告,按实际发生的广告点击数来向搜索引擎支付广告费用.SEO就不用再做介绍了.PPC一般出现在搜索结果的左侧或顶端,有时也会出现在自然搜索结果中. PPC广告: PPC广告的访问量,广告排名和广告效果比网站优化更具稳定性和预知性.PPC形式虽然出现

ASP中存储过程调用的两种方式及比较

比较|存储过程|存储过程 beerfroth(原作) 本人用sql server 和asp写了一个简单的留言本,在不断的尝试中发现,分页显示留言的时候,不同的执行方式,时间上的一些差别. 下面通过对比来看看几种方式的用时对比. 一,使用存储过程分页,这种情况又分为两种方式: 第一种,使用command对象,如下: Set Cmd=server.CreateObject("Adodb.Command")Cmd.ActiveConnection=connCmd.CommandText=&q

ASP中存储过程调用的两种方式,以及不采用存储过程的方式比较

比较|存储过程 本人用sql server 和asp写了一个简单的留言本,在不断的尝试中发现,分页显示留言的时候,不同的执行方式,时间上的一些差别. 下面通过对比来看看几种方式的用时对比. 一,使用存储过程分页,这种情况又分为两种方式: 第一种,使用command对象,如下: Set Cmd=server.CreateObject("Adodb.Command")Cmd.ActiveConnection=connCmd.CommandText="ycuu_gb_getmsg&

Flume直接到SparkStreaming的两种方式

Flume直接到SparkStreaming的两种方式,一般是flume->kafka->SparkStreaming,如果非要从Flume直接将数据输送到SparkStreaming里面有两种方式,如下: 第一种:Push推送的方式 程序如下: package cn.lijie import org.apache.log4j.Level import org.apache.spark.streaming.flume.FlumeUtils import org.apache.spark.str

不停止MySQL服务增加从库的两种方式

 现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作.  一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长.另一种是通过xtrabackup工具备份主库,恢复到从库,xtrabackup是物理备份,备份速度快,不锁表.为什么不锁表?因为自身会监控主

javascript数组输出的两种方式_javascript技巧

本文实例讲述了javascript数组输出的两种方式.分享给大家供大家参考.具体如下: 遍历javascript数组,两种方式: 第一种: 复制代码 代码如下: <script language="javascript" type="text/javascript"> var str = "how are you today"; var arr = str.split(" "); for(var key in ar