JavaScript中的Window.open()用法示例詳解
1 方法介紹
window.open()
方法是 JavaScript 中的一個(gè)內(nèi)置方法,用于在瀏覽器中打開(kāi)一個(gè)新的窗口或標(biāo)簽頁(yè)。
這個(gè)方法的語(yǔ)法是:
window.open(url, name, features, replace);
需要注意的是,由于彈出窗口的濫用已經(jīng)成為了一個(gè)安全問(wèn)題,現(xiàn)代瀏覽器通常會(huì)默認(rèn)阻止 window.open()
方法的調(diào)用,除非是在用戶的交互下觸發(fā)的。因此,在實(shí)際的開(kāi)發(fā)中,我們需要謹(jǐn)慎使用這個(gè)方法,避免被瀏覽器誤認(rèn)為是惡意行為。
2 參數(shù)說(shuō)明
url
必選參數(shù):要打開(kāi)的 URL 地址??梢允侨魏斡行У?URL,包括 HTTP、HTTPS、FTP 等協(xié)議。
name
可選參數(shù):新窗口的名稱,默認(rèn)_blank
。可以是任何字符串,有以下幾種情況:
_self
:當(dāng)前窗口中打開(kāi)。_blank
或者 不寫(xiě)該參數(shù):新窗口中打開(kāi),窗口name為空字符串。任何字符串
新窗口中打開(kāi),窗口name為任何字符串
。如果指定的名稱已經(jīng)存在,則會(huì)在該窗口中打開(kāi)該 URL,而不是新建一個(gè)窗口。
features
可選參數(shù):一個(gè)逗號(hào)分隔的字符串,指定新窗口的一些特性。這個(gè)字符串中可以包含以下屬性:
- width:窗口的寬度;
- height:窗口的高度;
- top:窗口距離屏幕頂部的距離,默認(rèn)0;
- left:窗口距離屏幕左側(cè)的距離,默認(rèn)0;
- menubar:是否顯示菜單欄,yes\no;
- toolbar:是否顯示工具欄,yes\no;
- location:是否顯示地址欄,yes\no;
- status:是否顯示狀態(tài)欄,yes\no;
- resizable:是否允許用戶調(diào)整窗口大小,yes\no;
- scrollbars:是否顯示滾動(dòng)條,yes\no。
replace
可選參數(shù):一個(gè)布爾值,指定新打開(kāi)的 URL 是否替換當(dāng)前頁(yè)面的歷史記錄。如果為 true,則新的 URL 會(huì)替換當(dāng)前頁(yè)面的歷史記錄,用戶點(diǎn)擊瀏覽器的“返回”按鈕時(shí)會(huì)回到上一個(gè)頁(yè)面;如果為 false,則新的 URL 會(huì)添加到當(dāng)前頁(yè)面的歷史記錄中,用戶點(diǎn)擊瀏覽器的“返回”按鈕時(shí)會(huì)回到上一個(gè) URL。
以下幾點(diǎn)需要注意:
當(dāng) 指定
features
參數(shù)時(shí),width
和height
是必須明確給出值,否則,features
參數(shù)將不起作用。
features
參數(shù)中,width
、height
、top
、left
是常用的參數(shù)。menubar
、toolbar
、location
、status
、resizable
、scrollbars
參數(shù)已經(jīng)被大部分瀏覽器棄用(為了更好的用戶體驗(yàn)),因此即使進(jìn)行了相關(guān)設(shè)置,也不會(huì)發(fā)生變化。
3 使用示例
3.1 當(dāng)前窗口中打開(kāi)網(wǎng)頁(yè)
使用示例:
window.open("https://www.baidu.com/","_self");
完整代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> #btn{ height: 50px; width: 200px; border: 1px solid black; background-color: bisque; line-height: 50px; text-align: center; } #btn:hover{ border: 1px solid rgb(14, 102, 202); background-color: rgb(80, 180, 113); cursor:pointer; } </style> </head> <body> <div id="btn">百度一下</div> <script> var myBtn = document.getElementById('btn'); myBtn.addEventListener('click',function(){ //當(dāng)前頁(yè)面中打開(kāi) window.open("https://www.baidu.com/","_self"); }) </script> </body> </html>
拓展:
當(dāng)前窗口中打開(kāi)也可以使用 window.location.href
,它是 JavaScript 中的一個(gè)屬性,表示當(dāng)前網(wǎng)頁(yè)的 URL 地址。它可以用來(lái)獲取當(dāng)前網(wǎng)頁(yè)的 URL,也可以用來(lái)跳轉(zhuǎn)到其他網(wǎng)頁(yè)。
使用示例:
console.log(window.location.href); // 輸出當(dāng)前網(wǎng)頁(yè)的 URL 地址 window.location.; // 跳轉(zhuǎn)到 https://www.example.com
需要注意的是,window.location.href 屬性是可讀可寫(xiě)的,在設(shè)置它的值時(shí)可以直接跳轉(zhuǎn)到其他網(wǎng)頁(yè)。因此在使用時(shí)需要小心,以免不小心導(dǎo)致頁(yè)面跳轉(zhuǎn)。
3.2 新窗口中打開(kāi)網(wǎng)頁(yè)
使用示例:
window.open("https://www.baidu.com/");
window.open("https://www.baidu.com/","_blank");
window.open("https://www.baidu.com/","任何字符串");
完整代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> #btn{ height: 50px; width: 200px; border: 1px solid black; background-color: bisque; line-height: 50px; text-align: center; } #btn:hover{ border: 1px solid rgb(14, 102, 202); background-color: rgb(80, 180, 113); cursor:pointer; } </style> </head> <body> <div id="btn">百度一下</div> <script> var myBtn = document.getElementById('btn'); myBtn.addEventListener('click',function(){ //新窗口中打開(kāi) //var item1 = window.open("https://www.baidu.com/"); //var item2 = window.open("https://www.baidu.com/","_blank"); var item3 = window.open("https://www.baidu.com/","任何字符串"); console.log('item',item3); }) </script> </body> </html>
為便于理解name參數(shù)的含義,將Window.open()的返回值賦給一個(gè)變量item,打印結(jié)果如下:
3.3 在獨(dú)立窗口中打開(kāi)一個(gè)指定大小和位置的網(wǎng)頁(yè)
示例代碼:
window.open(url, "_blank", "width=800,height=300,top = 200, left=400");
完整代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> #btn { height: 50px; width: 200px; border: 1px solid black; background-color: bisque; line-height: 50px; text-align: center; } #btn:hover { border: 1px solid rgb(14, 102, 202); background-color: rgb(80, 180, 113); cursor: pointer; } </style> </head> <body> <div id="btn">百度一下</div> <script> var myBtn = document.getElementById('btn'); myBtn.addEventListener('click', function () { var url = "https://www.baidu.com/"; window.open(url, "_blank", "width=800,height=300,top = 200, left=400"); }) </script> </body> </html>
結(jié)果展示:
總結(jié)
到此這篇關(guān)于JavaScript中Window.open()用法的文章就介紹到這了,更多相關(guān)js中Window.open()用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
layer實(shí)現(xiàn)關(guān)閉彈出層刷新父界面功能詳解
這篇文章主要介紹了layer實(shí)現(xiàn)關(guān)閉彈出層刷新父界面功能,結(jié)合實(shí)例形式分析了使用layui的layer在關(guān)閉彈出層時(shí)刷新父界面的常用實(shí)現(xiàn)技巧與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-11-11js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作實(shí)例分析
這篇文章主要介紹了js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作,結(jié)合實(shí)例形式分析了JavaScript基本dom事件、script在head和body中放置的區(qū)別、以及Dom的增刪改創(chuàng)建等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12javaScript遍歷對(duì)象和數(shù)組的方法總結(jié)
這篇文章介紹了javaScript遍歷對(duì)象和數(shù)組的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06關(guān)于微信中a鏈接無(wú)法跳轉(zhuǎn)問(wèn)題
微信頁(yè)面開(kāi)發(fā)時(shí),各個(gè)主頁(yè)之間的跳轉(zhuǎn),完全是通過(guò)a鏈接進(jìn)行的,但是來(lái)回跳轉(zhuǎn)幾次,再次從其他主頁(yè)面跳回首頁(yè)的時(shí)候,微信頭部出現(xiàn)了跳轉(zhuǎn)加載進(jìn)度條,但是就是不跳轉(zhuǎn),也沒(méi)有任何反應(yīng),怎么回事呢?下面小編給大家解答下2016-08-08微信小程序發(fā)布新版本時(shí)自動(dòng)提示用戶更新的方法
這篇文章主要介紹了微信小程序發(fā)布新版本時(shí)自動(dòng)提示用戶更新的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06javascript 解決表單仍然提交即使監(jiān)聽(tīng)處理函數(shù)返回false
解決表單依舊提交即使監(jiān)聽(tīng)處理函數(shù)返回false2010-03-03javascript實(shí)現(xiàn)圖片延遲加載方法匯總(三種方法)
看到一些大型網(wǎng)站,頁(yè)面如果有很多圖片的時(shí)候,當(dāng)你滾動(dòng)到相應(yīng)的行時(shí),當(dāng)前行的圖片才即時(shí)加載的,這樣子的話頁(yè)面在打開(kāi)只加可視區(qū)域的圖片,而其它隱藏的圖片則不加載,一定程序上加快了頁(yè)面加載的速度,跟著小編一起學(xué)習(xí)javascript實(shí)現(xiàn)圖片延遲加載吧2015-08-08JS實(shí)現(xiàn)懸浮球只在一側(cè)滑動(dòng)并且是橫屏狀態(tài)下
這篇文章主要介紹了JS實(shí)現(xiàn)懸浮球只在一側(cè)滑動(dòng) 并且是橫屏狀態(tài)下,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08