window.open小技巧

INTRO: window.open实践,提供一个小技巧,解决让window.open始终保持在同一个新窗口。

简短一些,关于window.open的详细说明,请参考MDC:
https://developer.mozilla.org/en/DOM/window.open
其中也有提到最佳实践。

有这样一种情况,你将window.open绑定到了一个click事件句柄上,用户在触发点击事件以后出弹出一个新窗口,而当用户继续触发点击事件时,浏览器会不断的弹出新窗口。
多个新窗口可能会对我们的JavaScript交互产生负面影响,所以我们想将这个window.open永远作用于同一个新窗口中。

这里提供一种简单的解决方案:

1
2
3
4
5
6
7
8
9
var message = 'Opening new page',
	//win = window.open('javascript:"' + encodeURIComponent(message) + '"', 'newWindow'),
	//win = window.open('data:text/html','newWindow');
	win = window.open('about:blank','newWindow');
	doc = win.document;
doc.write('<!DOCTYPE HTML><html><head><meta charset="UTF-8"><title>' +
	message + '</title></head><body>' +
	message + '</body></html>');
doc.close();

当事件句柄被触发时,你可以用:

1
2
win.location.replace('http://www.decimage.com/');
win.focus();

1.低版本的ie系推荐使用’about:blank’
2.window的name注意不要包含特殊字符哦~

或许您对这些文章也感兴趣:

希望得到您的评论

(匿名是不被允许的)
(不会被公开)

DecImage.com 印象十二月 遥记那一季西部行

你不能逃避你的弱点,要不就奋起反击,要不就坐以待毙。如果真的是这样,为什么不从此时就开始呢?——Robert Louis Stevenson
感谢阅读我的文章,如果您需要订阅:RSS Feed | Comments RSS Feed

> 推荐两本看过的书

  • 艽野尘梦艽野尘梦全书5万多字,文言文书写,纸薄情长。读完全书,你必从此不会忘记一个叫西原的女子。
  • 幸福的建筑幸福的建筑阿兰·德波顿说他对任何的装饰都深恶痛绝,故我觉得他会和我一样喜欢北欧极简主义。
  • >友情链接

  • 零九的十二月 我在西部游走 像一个孩子一样