客户提出一个条件,要求网页实现如下要求:
在页面中弹出一个新的小框,内含有一个长网页。点击原页面上的链接,在小框中的网页显示相应的信息。
看上去问题不大。但比较起以前做的弹出窗口,有两个难点。
1、弹出窗口的位置要控制好,不要阻碍原有窗口的链接。
2、由于连接的是同一个页面,第二次点击时浏览器不能获得焦点。也就是弹出窗口隐藏在原有窗口之后了。
第一个问题好解决,因为看过新浪上有类似的控制,打开页面,一抄过来就是了。代码如下:
<SCRIPT language=JavaScript>
<!--
self.moveTo(400,30)
//-->
</SCRIPT>
第二个就麻烦了。找遍了JavaScript的说明,也没找到相应的功能。在网上查到用<body οnblur=self.focus()> ,这样做确实能保证页面永在最前,但却点不了原页面的连接了。网上看到,这种功能不少人都想做,但最终都不能实现。
最后,忽然想到:为什么新页面它就能获得焦点呢?因为IE知道它是一个新网页,要去更新它。那欺骗一下IE,在连接中加不同的参数,那就可以做到了?
终于,所有JavaScript都无办法的情况下,一个“多余”的参数解决了问题。