最后更新于 .

在开始这篇文章之前,还是先说点不相干的,最近博客多了不少emacs的文章,并不是我(dante)从Vim转向emacs了,而是由于本博目前是有三个作者的(dante、ian、lr),而ian是用emacs的,所以本着linux本是一家的原则,会把我们的心得都放在这个博客里和大家共享。
 
呵呵,好啦,闲话不多说,进入正题。
最近在做流程系统的时候,发现用showModalDialog来限制用户焦点及流程的确是不错的方法,不过在使用中也发现了两个问题:
1.showModalDialog打开的窗口中,如果是调用form表单或者其他需要重新生成页面的操作,一定会打开新窗口
2.showModalDialog打开的窗口中是无法刷新的
 
感谢google大神的协助,总算让我找到了答案
 
1.通过frame页来装载页面
例如,需要原来的调用是
window.showModalDialog("a.html")

 

我们只需要新建一个页面b.html:
<frameset rows="0,*"> 
<frame src="about:blank"> 
<frame src="a.htm"> 
</frameset>

 

然后将原来的调用改成:
window.showModalDialog("a.html")

 

实际上b.html可以做成一个通用的页面,通过传入的url来决定frame内的页面url,不过要记得urlencode
 

2.在刷新这个问题上,我试过无数方法,包括history.go(0) 和 location.reload() 都没有办法实现,后来在一篇文章上偶尔发现用:

location.replace(URL)

 

居然可以实现,不过代价就是向前操作不可用了(本来就不可用……)
原文链接如下:

http://blog.csdn.net/sgear/archive/2008/07/23/2695298.aspx
再之后发现还有其他几种刷新方式,不过由于问题已经解决,所以就没有再去试了:
history.go(0) 
location.reload() 
location=location 
location.assign(location) 
document.execCommand('Refresh') 
window.navigate(location) 
location.replace(location) 
document.URL=location.href

 

OK,就这样~~

Pingbacks

Pingbacks已打开。

Trackbacks

引用地址

评论

  1. MadPer

    MadPer on #

    看出dante先生在前三行表现出的无奈了...话说,其实ian也有自己的主页吧?好像进去看过,不过是英文的...

    Reply

    1. ian

      ian on #

      这个……不知道你找到的是哪位大神的主页,我目前暂时还没有自己专门的技术博呢,现在只是在博主这里打打酱油
      还得感慨一下,Emacs和Vim在一起就是容易引起争议啊

      Reply

      1. MadPer

        MadPer on #

        嗯,我在emacser.com看到有个人叫ian,点开是个网页,上面还写着Do it, ian,地址是http://www.doitian.com/
        我想起来之前IRC上一个人说的话:任何对VIM或者Emacs的功能的讨论终将变为vim及Emacs间的论战.
        刚才去了那个网站看了下,好像是lan...我有一次没有分清I和l...

        Reply

发表评论