在写页面程序的时候,经常会使用到javascript来控制窗口的弹出—window.open()。它的参数非常的灵活,标题、名称、窗口参数配置。用户有时可能会在同一个页面中要打开几个窗口来查看不同的内容,如果代码规范不够细致,开发者又不够小心,就会遇到这样的问题:先弹出了一个窗口而没有关闭,当用户想再打开另一个窗口显示不同的内容时,第一个窗口的内容会被新的内容覆盖而不会有新窗口打开。例如,用户在编辑定单的时候,要先打开一个窗口选择供应商,在关闭供应商窗口之前,用户又打开另一个窗口要选择时间。没有新的窗口打开,只是供应商窗口的内容被时间选择的窗口给覆盖了。这个问题曾经困扰过我两次,相信不会有第三次了。
问题出在window.open()的调用上。如果两个window.open的名称参数是一样的,那么IE会在同一个弹出窗口中load新内容。解决办法已经出来了—就是为每一个window.open定义不同的名称参数。看似简单的解决办法,其实又引申出另一个概念:用习惯规避风险!良好的开发规范可以减少大量的潜在风险,也许你不需要知道所有的规范有什么好处,但首先你要保证遵守既定的开发规范,然后再去理解它,发展它。
问题出在window.open()的调用上。如果两个window.open的名称参数是一样的,那么IE会在同一个弹出窗口中load新内容。解决办法已经出来了—就是为每一个window.open定义不同的名称参数。看似简单的解决办法,其实又引申出另一个概念:用习惯规避风险!良好的开发规范可以减少大量的潜在风险,也许你不需要知道所有的规范有什么好处,但首先你要保证遵守既定的开发规范,然后再去理解它,发展它。