整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          如何用JavaScript創建彈出窗口

          擊右上方紅色按鈕關注“小鄭搞碼事”,每天都能學到知識,搞懂一個問題!

          大家好!我是/小鄭搞碼事/的小鄭

          今天和大家分享一下JS如何操作瀏覽器窗口。只講如何打開一個新窗口

          先來看效果圖

          上面這個圖界面效果就是我們要實現的。

          我們常常需要創建一個新窗口,用來向用戶顯示額外的信息,同時又避免他們正在閱讀的信息消失。從實現方案上來看,盡管我們可以用HTML打開一個新的瀏覽器窗口,但是使用JavaScript可以對新窗口的內容和特性進行更多的控制。

          接下來,我們看一下怎么實現的

          一、定義窗口打開函數

          定義一個打開新窗口的函數newWindow。如上面代碼所示,變量catWindow包含一個新的窗口對象,這個對象引用圖像文件icon.png,這個新窗口的名稱是catWin,必須設置名稱,因為我們以后可能希望在a或另一個腳本中引用這個窗口。新窗口的寬度是350像素,高度是260像素,位置是左邊400,上邊400。

          二、寫一個調用函數

          頁面中,包含一個onload事件處理程序,它調用newWinLinks函數,newWinLinks循環遍歷頁面上的a,檢查是否有任何a包含class屬性值newWin。如果有,就設置這個a元素的onclick事件處理程序,從而,當點擊這個a時,調用newWindow函數。

          總結一下

          需要注意兩個地方:

          1、newWindow中,在寬度和高度參數中的逗號之間不能有任何空格,如果有空格,那么腳本可能在某些瀏覽器中無效,總地來說,當腳本出現錯誤,需要進行高度時,要首先查找這樣的小問題。

          2、比如向窗口中添加參數時,希望窗口具有工具欄,地址欄,滾動條

          toolbar=yes,location=yes,scrollbars=yes
          

          參數默認是no,可以不填。當然瀏覽器上表現也有不同,需要知道。

          HTML頁面中嵌入其他頁面的方法

          在自己的頁面中嵌入其他頁面是一個非常重要的操作,既能豐富自己的頁面樣式又能增強頁面的信息量。

          舉個例子,如果打算在自己的頁面中插入一個視頻網站的視頻該怎么做呢?

          假如我現在自己的頁面中嵌入這個視頻,

          我只需要在視頻下側找到"分享"。

          點擊之后出現這樣的對話框,如圖:

          通過在我們的頁面中粘貼這段通用代碼就可以顯示這個視頻了。

          代碼如下:

          <iframe height=498 width=510 src='http://player.youku.com/embed/XNDQ5Mjg1MTU1Mg==' frameborder=0 'allowfullscreen'></iframe>

          下面就寫到我們的頁面中試試吧。

          首先復制"第一個網頁.html"文件,改名為"在頁面中嵌入頁面.html"保存,然后用記事本打開,修改<head></head>標簽中的<title>第一個頁面</title>編輯為"在頁面中嵌入頁面"即可,完整代碼如下:

          <!DOCTYPE HTML>
            <html>
            <head> 
            <title>在頁面中嵌入頁面</title>
            </head> 
            <body>
            <iframe height=498 width=510 src='http://player.youku.com/embed/XNDQ5Mjg1MTU1Mg==' frameborder=0 'allowfullscreen'></iframe>
            </body>
            </html>

          頁面效果如下:

          怎么樣,是不是很神奇!

          下面我們來分析一下這段代碼的含義。

          首先要引入一個新標簽<iframe>,HTML的使用手冊中翻譯為"框架",說實話,這么翻譯初學者是不知所云的。這個框架元素的主要作用就是在自己的頁面中嵌入其他頁面。

          在<iframe>標簽中先指定路徑屬性即src。這里使用的是單引號,實際上只要是半角符號,單引號和雙引號都可以的。

          然后設置長寬屬性,即width和height,大家可以嘗試改變數據看看。

          frameborder可以為iframe的窗口指定一個邊框,大家可以嘗試把0改成1看看。大家注意哈,這里輸入30和輸入1是一樣的,因為這個屬性不是定義邊框的寬度,而是定義是否顯示邊框!在編程中叫做布爾值,0代表沒有邊框,1代表有邊框!和我們點燈的開關一樣!

          如圖:多了個邊框出來。

          最后'allowfullscreen'這個描述非常的奇葩,把它刪掉沒有任何影響。不曉得是干什么的,主要是也不符合html的語法(也可能是我沒見識)。如果有詳細了解的小伙伴歡迎留言指教,感激不盡。

          下面我們嘗試修改一下src屬性,給它一個別的路徑看看。例如:

          <!DOCTYPE HTML>
            <html>
            <head> 
            <title>在頁面中嵌入頁面</title>
            </head> 
            <body>
            <iframe height=498 width=510 src='https://www.toutiao.com/i6790673377188119052/'>
            </iframe>
            </body>
            </html>

          需要注意的是,修改了src并保存文件之后要把原頁面關閉然后重新打開才可以正常顯示!

          效果如下:

          在瀏覽網頁時我們還經常遇到這樣的情況,就是有一個獨立窗口顯示嵌套的頁面,上面有個標題,一點擊就會跳到那個嵌入的頁面上,這個其實很簡答,使用一個<a></a>元素即可辦到,示例代碼如下:

          <a href="https://www.toutiao.com/i6790673377188119052/">HTML中的塊級元素與內聯元素——零基礎自學網頁制作</a>
          <iframe height=498 width=510 src='https://www.toutiao.com/i6790673377188119052/'></iframe>

          頁面示例如下:

          框架元素并沒有換行,所有我們可以推測出<iframe>標簽實際上是個內聯元素,如何讓它換行呢?

          為<iframe>的style屬性中寫入display:block即可。這句代碼的意思是按照塊元素來顯示<iframe>內容。

          示例代碼如下:

          <iframe height=498 width=510 style = "display:block;"src='https://www.toutiao.com/i6790673377188119052/'></iframe>

          頁面效果如下:

          是不是很有意思。

          下面我們來介紹一個更有趣的玩法。如圖所示:

          這個怎么做呢?

          這就要介紹<iframe>標簽中的另一個屬性:name(名字)

          示例代碼如下:name="iframe"

          <iframe name = "iframe" height=498 width=510style = "display:block;"src='https://www.toutiao.com/i6790673377188119052/'allowfullscreen'></iframe>

          這里講個題外話,如果大家了解中國古代的"請神術"的話就會知道這樣一個有趣的傳說,就是如果我們能叫出鬼神的名字就可以驅使它。

          編程也是這樣,我們給函數或變量一個名字后,就可以隨時隨地的驅使它。

          現在我們給<iframe>起了個名字叫做"iframe",當然您可以使用其他名字也沒問題,但要使用英文或漢語拼音命名,名字是英語字母組合最好。

          有了名字之后,<a>標簽就要驅使<iframe>標簽來顯示自己路徑下的內容,如何驅使呢?

          大家還記得<a>標簽中有一個target屬性嗎?只要讓target="iframename"即可!

          也就是target="iframe"。示例代碼如下:大家要注意的是<a>標簽也是內聯元素,也需要添加display:block,不然也是排在一列顯示。

          <a style = "display:block;" target="iframe" href="https://www.toutiao.com/i6790673377188119052/">HTML中的塊級元素與內聯元素——零基礎自學網頁制作</a><!--第一個a鏈接的是頭條文章-->
          <a style = "display:block;" target="iframe" href="https://baike.baidu.com/item/%E6%AD%BC-20/1555348?fromtitle=%E6%AD%BC20&fromid=1838467&fr=aladdin"> 殲20戰斗機百科</a><!--第二個a鏈接的是百度百科-->
          <a style = "display:block;"target="iframe" href="image1.jpg">IT美女</a><!--第三個a鏈接的是本地圖片-->
          <iframe name = "iframe" height=498 width=510style = "display:block;"></iframe>

          只要我們為不同的<a>標簽賦予target="iframe"的屬性,點擊這些<a>標簽就可以在叫做"iframe"的框架元素中顯示自己的頁面。這時我們可以把<iframe>標簽中的src屬性刪除掉,保存文件后,關閉測試網頁,再重新打開,效果如下:

          初始狀態下,因為框架元素中的src是空的,所以打開后是空白的。如果您覺得單調可以任意復制3個<a>中的一個href中的鏈接路徑給<iframe>的src屬性,打開就是相應的標簽。這個就不演示了,大家自己試試即可。

          點擊第一個鏈接效果如下:

          點擊第二個鏈接如下:

          點擊第三個鏈接如下:

          最后再強調一下,改完框架的src屬性后需要關閉頁面后重新打開才可以,刷新的話并不能正確顯示!切記!

          今天的示例代碼如下:

          <!DOCTYPE HTML>
            <html>
            <head> 
            <title>在頁面中嵌入頁面</title>
            </head> 
            <body>
            <a style = "display:block;" target="iframe" href="https://www.toutiao.com/i6790673377188119052/">HTML中的塊級元素與內聯元素——零基礎自學網頁制作</a>
            <a style = "display:block;" target="iframe" href="https://baike.baidu.com/item/%E6%AD%BC-20/1555348?fromtitle=%E6%AD%BC20&fromid=1838467&fr=aladdin">殲20戰斗機百科</a>
          <a style = "display:block;" target="iframe" href="image1.jpg">IT美女</a>
          <iframe name = "iframe" height=498 width=510 style = "display:block;"></iframe>
          </body>
          </html>

          今天的內容結束了,明天我將會為大家介紹<object>和<embed>這兩個標簽,它們可以在頁面中嵌入更多有趣的東西。

          喜歡的小伙伴請關注我,閱讀中遇到任何問題請給我留言,如有疏漏或錯誤歡迎大家斧正,不勝感激!

          HTML完整學習目錄

          HTML序章(學習目的、對象、基本概念)——零基礎自學網頁制作

          HTML是什么?——零基礎自學網頁制作

          第一個HTML頁面如何寫?——零基礎自學網頁制作

          HTML頁面中head標簽有啥用?——零基礎自學網頁制作

          初識meta標簽與SEO——零基礎自學網頁制作

          HTML中的元素使用方法1——零基礎自學網頁制作

          HTML中的元素使用方法2——零基礎自學網頁制作

          HTML元素中的屬性1——零基礎自學網頁制作

          HTML元素中的屬性2(路徑詳解)——零基礎自學網頁制作

          使用HTML添加表格1(基本元素)——零基礎自學網頁制作

          使用HTML添加表格2(表格頭部與腳部)——零基礎自學網頁制作

          使用HTML添加表格3(間距與顏色)——零基礎自學網頁制作

          使用HTML添加表格4(行顏色與表格嵌套)——零基礎自學網頁制作

          16進制顏色表示與RGB色彩模型——零基礎自學網頁制作

          HTML中的塊級元素與內聯元素——零基礎自學網頁制作

          初識HTML中的<div>塊元素——零基礎自學網頁制作

          在HTML頁面中嵌入其他頁面的方法——零基礎自學網頁制作

          封閉在家學網頁制作!為頁面嵌入PDF文件——零基礎自學網頁制作

          HTML表單元素初識1——零基礎自學網頁制作

          HTML表單元素初識2——零基礎自學網頁制作

          HTML表單3(下拉列表、多行文字輸入)——零基礎自學網頁制作

          HTML表單4(form的action、method屬性)——零基礎自學網頁制作

          HTML列表制作講解——零基礎自學網頁制作

          為HTML頁面添加視頻、音頻的方法——零基礎自學網頁制作

          音視頻格式轉換神器與html視頻元素加字幕——零基礎自學網頁制作

          HTML中使用<a>標簽實現文本內鏈接——零基礎自學網頁制作

          用場景


          在前端開發的過程中,時常有這樣的一個需求,需要將某個組件,展示在不同的頁面中。常見的有,頭部菜單欄、底部版權,如下圖中的菜單,就需要在不同頁面中進行顯示。



          解決方法


          假設有這樣一個需求,希望把下面的這個頭部菜單在 Home 和 About 這兩個頁面中顯示



          在頁面中,引入公共組件


          在需要顯示頭部組件的頁面中,引入頭部組件,如下所示。



          這樣確實能解決問題,但比較麻煩,需要在每個使用的頁面中,都引入一次。


          另外一個問題是,在 Header 組件內部的狀態,切換路由后,狀態會被重置,如下所示。



          代碼如下



          如果希望狀態不被重置,可以使用 redux 或 mobx,將狀態保存到全局。


          在路由組件外面,引入公共組件



          這樣,在所有頁面中都會顯示 Header 組件。


          不過,由于 Header 組件是在路由組件外面引入的,導致無法在 Header 組件中,使用路由相關的功能,比如 Link 組件。如果只是進行路由頁面跳轉,那還好辦,可以使用 a 標簽代替 Link 組件,如下圖所示。



          在路由組件外面引入 Header 組件的另外一個問題是, Header 組件會在所有頁面中展示,而有時,我們只是希望能夠在特定頁面中進行顯示。


          在路由組件中,引入公共組件



          在 HashRouter 組件中引入 Header 組件,Header 組件可以正常使用路由的相關功能。


          不過,Header 組件還是會在所有頁面中進行顯示,如果只希望它在特定頁面中進行顯示,那么,我們需要將公共組件放在 Route 中,并修改匹配路徑,如下所示。



          將公共組件放在 Route 組件中,并定義匹配路徑,接著修改 Switch 組件中相應的路由匹配規則,如想在 Home 和 About 頁面中顯示 Header 組件,那么就在路徑匹配中添加 /app,這樣就可以實現,在特定頁面中顯示某個組件。


          由于添加了 /app 路徑前綴后,導致 URL 輸入 / 不會顯示 Home 頁,想解決這個問題,可以使用重定向 Redirect 組件,如下所示。



          還有一種不太推薦的方式,也可以實現在特定頁面顯示某個組件,Route 組件不寫 path,然后在相應的組件中,判斷當前頁面的 hash 是否與目標吻合,如果匹配,則顯示組件,否則返回 null。


          總結


          在頁面中引入公共組件


          • 麻煩,每個頁面中都要引入一次
          • 切換路由,導致組件重新渲染,狀態會被重置


          在路由組件外部引入公共組件


          • 會在所有頁面中顯示,如果想要在特定頁面顯示,需要自行判斷
          • 無法使用路由提供的相關組件和功能


          在路由組件內部引入公共組件


          • 支持特定路由顯示某個組件
          • 可以正常使用路由提供的相關功能


          在以上三種方式,都無法保證組件內部的狀態不被重置,如果路由前綴發生改變,哪怕把公共組件放在了,路由組件內部,狀態還是會被重置,所以如果有必要,可以把狀態放在全局中。


          作者:追夢子
          原文:https://www.cnblogs.com/pssp/p/10742385.html


          主站蜘蛛池模板: 免费日本一区二区| 国产亚洲一区二区三区在线不卡| 国产suv精品一区二区6| 成人一区二区免费视频| 亚洲av色香蕉一区二区三区蜜桃 | 精品视频一区二区三区四区五区 | 青娱乐国产官网极品一区| 一区二区在线视频观看| 日韩精品免费一区二区三区| 精品性影院一区二区三区内射| 最美女人体内射精一区二区| 亚洲熟女乱综合一区二区| 国产伦精品一区三区视频| 日本一区二区三区不卡在线视频| 中文字幕一区在线观看视频| 麻豆一区二区三区精品视频| 无码少妇一区二区| 蜜桃臀无码内射一区二区三区| 久久精品一区二区东京热| 久久亚洲AV午夜福利精品一区| 国产一区二区精品久久岳| 日韩精品无码一区二区三区AV| 丰满人妻一区二区三区免费视频| 夜色阁亚洲一区二区三区| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲午夜精品一区二区公牛电影院 | 亚洲综合无码一区二区三区| 国产精品视频第一区二区三区| 久久亚洲中文字幕精品一区四 | 国产A∨国片精品一区二区| 亚洲高清偷拍一区二区三区| V一区无码内射国产| 亚洲韩国精品无码一区二区三区| 免费视频一区二区| 精品人妻一区二区三区浪潮在线| 在线中文字幕一区| 久久精品无码一区二区三区不卡| 国产日韩精品一区二区在线观看 | 乱色熟女综合一区二区三区| 精品无码人妻一区二区三区不卡| 人妻少妇一区二区三区|