1.window.open打開頁面參數說明:javascript
2.調整彈窗位於頁面中間,並按比例打開彈窗,強制位於頁面最前面html
//name 彈窗名字 //width 彈窗寬度(比例) //height 彈窗高度(比例) var myWindow; function openWin(url, name, width, height) { var w_percent = width ? width : 9;//若是參數未傳,則取9 var h_percent = height ? height : 8; var widths = (window.screen.availWidth) * w_percent / 10; var heights = (window.screen.availHeight) * h_percent / 10; var iLeft = (window.screen.availWidth - widths) / 2; var iTop = (window.screen.availHeight - heights) / 2; //判斷是否爲IE var b_version=navigator.appVersion; var version=b_version.split(";"); if(version[1]){ var trim_Version=version[1].replace(/[ ]/g,""); } if(trim_Version == 'MSIE9.0' || trim_Version == 'MSIE10.0'|| trim_Version == 'WOW64' || trim_Version == 'MSIE7.0'){//IE瀏覽器,直接打開 myWindow = window.open(url, name, 'scrollbars=yes,width=' + widths + ',height=' + heights + ',left=' + iLeft + ',top=' + iTop + ''); myWindow.focus(); }else{//非IE,判斷窗口是否存在,若存在,則關閉當前窗口,從新打開 if(myWindow){ myWindow.close(); myWindow = null; } myWindow = window.open(url, name, 'scrollbars=yes,width=' + widths + ',height=' + heights + ',left=' + iLeft + ',top=' + iTop + ''); } //彈窗名字重命名ss var title = name; setTimeout(function () { myWindow.document.title = title; }, 1000); }
<a href="javascript:void(0)" onclick="javascript:openWin('url','name','8.5','7.5')">name</a>
代碼說明:java
(1)通常window.open方法打開彈窗,火狐下彈窗沒法自動顯示到頁面最前面,用myWindow.focus()方法,可強制新開頁面置於頁面最前方。瀏覽器
(2)360極速模式下,此方法仍不能解決將頁面置於最前方的問題,故加判斷,若是頁面已經打開,則將此頁面關閉,參數置爲空,從新打開此頁面。即:if(myWindow){ myWindow.close() ; myWindow = null ;} myWindow = myWindow.open(url,name,....);app
(3)用這種方式解決了360極速模式出現的問題,360兼容模式即ie下,又會出現第二次打開彈窗,彈窗被瀏覽器屏蔽的問題,因此,我選擇判斷瀏覽器模式,處理此兼容問題,即若是當前瀏覽器是IE,則直接打開頁面,不須要判斷myWindow是否存在的狀況。url
綜上所述,就解決了用window.open打開窗口強制位於最前遇到的兼容問題。code