web编程过程中,经常会遇到一些页面需要弹出窗口,有时window.open弹出的窗口会被浏览器阻止掉,showModalDialog弹出的窗口有时并不能满足我们需要,我们需要弹出新的浏览器窗口。
浏览器会自动判断弹出窗口的状态,它会阻止自动弹出的窗口,而通过我们用鼠标点击弹出的窗口,它是不会阻止的。原因:其实只有在加载页面后,我们从点击 到 弹出这段时间页面没有被重新加载的情况下,弹出的窗口才不会被阻止!当你直接回车后,会先加载页面,再去处理弹窗事件,此时window.open都会被阻止。
解决window.open被浏览器拦截方法:
<form id="searchform" method="get" οnsubmit="return Search();" target="_blank">
<input id="KeyWord" name="KeyWord" type="text" value="" /><!--搜索的关键字-->
<input type="button" id ="butsearch" value="搜 索" οnclick="return Search();" />
</form>
另: 当焦点位于文本框中,在keydown事件下捕获回车键。。后可以触发自定义事件。
<script type ="text/javascript" >
function Search_keydown(e, btnId) {
var kcode;
if (window.event) { kcode = e.keyCode; }
else if (e.which) { kcode = e.which; }
var validKey = (kcode == 8 || kcode == 46 || kcode == 37 || kcode == 39 || (kcode >= 48 && kcode <= 57) || (kcode >= 96 && kcode <= 105));
if (!validKey) {
if (kcode == 13)
{ document.getElementById(btnId).click();
event.returnValue = false };
}
}
</script>