javascript 控制彈出窗口

前言:經常上網的朋友可能會到過這樣一些網站,一進入首頁立刻會彈出一個窗口,或者按一個連接或按鈕彈出,通常在這個窗口里會顯示一些注意事項、版權信息 、警告、歡迎光顧之類的話或者作者想要特別提示的信息。其實制作這樣的頁面效果非常的容易,只要往該頁面的HTML里加入幾段javascript代碼即可實現。下面我就帶您剖析它的奧秘。


  【1、最基本的彈出窗口代碼】
  
  <SCRIPT LANGUAGE="javascript">
  <!--
  window.open ('page.html')
  -->
  </SCRIPT>
  
  因為著是一段javascripts代碼,所以它們應該放在<SCRIPT LANGUAGE="javascript">標簽和</script>之間。<!-- 和 -->是對一些版本低的瀏覽器起作用,在這些老瀏覽器中不會將標簽中的代碼作為文本顯示出來。要養成這個好習慣啊。window.open ('page.html') 用于控制彈出新的窗口page.html,如果page.html不與主窗口在同一路徑下,前面應寫明路徑,絕對路徑(http://)和相對路徑(../)均可。用單引號和雙引號都可以,只是不要混用。這一段代碼可以加入HTML的任意位置,<head>和</head>之間可以,<body>間</body>也可以,越前越早執行,尤其是頁面代碼長,又想使頁面早點彈出就盡量往前放。
 
  【2、經過設置后的彈出窗口】
  
  下面再說一說彈出窗口的設置。只要再往上面的代碼中加一點東西就可以了。 我們來定制這個彈出的窗口的外觀,尺寸大小,彈出的位置以適應該頁面的具體情況。
  
  <SCRIPT LANGUAGE="javascript">
  <!--
  window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //這句要寫成一行
  -->
  </SCRIPT>
  
  參數解釋:
  
  <SCRIPT LANGUAGE="javascript"> js腳本開始;
  window.open 彈出新窗口的命令;
  'page.html' 彈出窗口的文件名;
  'newwindow' 彈出窗口的名字(不是文件名),非必須,可用空''代替;
  height=100 窗口高度;
  width=400 窗口寬度;
  top=0 窗口距離屏幕上方的象素值;
  left=0 窗口距離屏幕左側的象素值;
  toolbar=no 是否顯示工具欄,yes為顯示;
  menubar,scrollbars 表示菜單欄和滾動欄。
  resizable=no 是否允許改變窗口大小,yes為允許;
  location=no 是否顯示地址欄,yes為允許;
  status=no 是否顯示狀態欄內的信息(通常是文件已經打開),yes為允許;
  </SCRIPT> js腳本結束

  
  【3、用函數控制彈出窗口】
  
  下面是一個完整的代碼。
  <html>
  <head>
  <script LANGUAGE="javascript">
  <!--
  function openwin() {
  window.open ("page.html", "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") //寫成一行
  }
  //-->
  </script>
  </head>
  <body οnlοad="openwin()">
  任意的頁面內容...
  </body>
  </html>

  這里定義了一個函數openwin(),函數內容就是打開一個窗口。在調用它之前沒有任何用途。怎么調用呢?

  方法一:<body οnlοad="openwin()"> 瀏覽器讀頁面時彈出窗口;
  方法二:<body οnunlοad="openwin()"> 瀏覽器離開頁面時彈出窗口;
  方法三:用一個連接調用:
  <a href="#" οnclick="openwin()">打開一個窗口</a>
  注意:使用的“#”是虛連接。
  方法四:用一個按鈕調用:
  <input type="button" οnclick="openwin()" value="打開窗口">

 
 
  【4、同時彈出2個窗口】
  
   對源代碼稍微改動一下:
  
  <script LANGUAGE="javascript">
  <!--
  function openwin() {
  window.open ("page.html", "newwindow", "height=100, width=100, top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")//寫成一行
  window.open ("page2.html", "newwindow2", "height=100, width=100, top=1 00, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, loca tion=no, status=no")//寫成一行
  }
  //-->
  </script>
  為避免彈出的2個窗口覆蓋,用top和left控制一下彈出的位置不要相互覆蓋即可 。最后用上面說過的四種方法調用即可。
  注意:2個窗口的name(newwindows和newwindow2)不要相同,或者干脆全部為空。

  【5、主窗口打開文件1.htm,同時彈出小窗口page.html】

  如下代碼加入主窗口<head>區:
  <script language="javascript">
  <!--
  function openwin() {
  window.open("page.html","","width=200,height=200")
  }
  //-->
  </script>
  加入<body>區:
  <a href="1.htm" οnclick="openwin()">open</a>即可。


  【6、彈出的窗口之定時關閉控制】
  
  下面我們再對彈出的窗口進行一些控制,效果就更好了。如果我們再將一小段 代碼加入彈出的頁面(注意是加入page.html的HTML中,可不是主頁面中,否則 ...),讓它10秒后自動關閉是不是更酷了?
首先,將如下代碼加入page.html文件的<head>區:
  <script language="javascript">
  function closeit()
  {
  setTimeout("self.close()",10000) //毫秒
  }
  </script>
  然后,再用<body οnlοad="closeit()"> 這一句話代替page.html中原有的<BODY>這一句就可以了。(這一句話千萬不要忘記寫啊!這一句的作用是調用關閉窗 口的代碼,10秒鐘后就自行關閉該窗口。)
  【7、在彈出窗口中加上一個關閉按鈕】

  <FORM>
  <INPUT TYPE='BUTTON' value='關閉' onClick='window.close()'>
  </FORM>
  呵呵,現在更加完美了!

  【8、內包含的彈出窗口-一個頁面兩個窗口】

  上面的例子都包含兩個窗口,一個是主窗口,另一個是彈出的小窗口。通過下面的例子,你可以在一個頁面內完成上面的效果。


  <html>
  <head>
  <SCRIPT LANGUAGE="javascript">
  function openwin()
  {
  OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no ,scrollbars="+scroll+",menubar=no");
  //寫成一行
  OpenWindow.document.write("<TITLE>例子</TITLE>")
  OpenWindow.document.write("<BODY BGCOLOR=#ffffff>")
  OpenWindow.document.write("<h1>Hello!</h1>")
  OpenWindow.document.write("New window opened!")
  OpenWindow.document.write("</BODY>")
  OpenWindow.document.write("</HTML>")
  OpenWindow.document.close()
  }
  </SCRIPT>
  </head>
  <body>
  <a href="#" οnclick="openwin()">打開一個窗口</a>
  <input type="button" οnclick="openwin()" value="打開窗口">
  </body>
  </html>

  看看OpenWindow.document.write()里面的代碼不就是標準的HTML嗎?只要按照 格式寫更多的行即可。千萬注意多一個標簽或少一個標簽就會出現錯誤。記得用 OpenWindow.document.close()結束啊。

  【9、終極應用--彈出的窗口之Cookie控制】

  回想一下,上面的彈出窗口雖然酷,但是有一點小毛病(沉浸在喜悅之中,一定 沒有發現吧?)比如你將上面的腳本放在一個需要頻繁經過的頁面里(例如首頁),那么每次刷新這個頁面,窗口都會彈出一次,是不是非常煩人?:-(
  有解決的辦法嗎?Yes! ;-) Follow me.我們使用cookie來控制一下就可以了。
  首先,將如下代碼加入主頁面HTML的<HEAD>區:

  <script>
  function openwin(){
  window.open("page.html","","width=200,height=200")
  }
  function get_cookie(Name) {
  var search = Name + "="
  var returnvalue = "";
  if (documents.cookie.length > 0) {
  offset = documents.cookie.indexOf(search)
  if (offset != -1) {
  offset += search.length
  end = documents.cookie.indexOf(";", offset);
  if (end == -1)
  end = documents.cookie.length;
  returnvalue=unescape(documents.cookie.substring(offset, end))
  }
  }
  return returnvalue;
  }  
  function loadpopup(){
  if (get_cookie('popped')==''){
  openwin()
  documents.cookie="popped=yes"
  }
  }
  </script>

  然后,用<body οnlοad="loadpopup()">(注意不是openwin而是loadpop啊!)替換主頁面中原有的<BODY>這一句即可。你可以試著刷新一下這個頁面或重新進 入該頁面,窗口再也不會彈出了。真正的Pop-Only-Once!

  寫到這里彈出窗口的制作和應用技巧基本上算是完成了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276758.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276758.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276758.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

蘇寧的Node.js實踐:不低于Java的渲染性能、安全穩定迭代快

前端 Node.js 的使用場景大多集中在前端工具上&#xff0c;當前的前端主要把它定位為輔助。蘇寧易購使用 Node.js 作為前后端分離的主要手段&#xff0c;經歷了從技術引進到全面開花&#xff0c;從邊緣功能到核心業務&#xff0c;從紛亂到穩定的過程。同時 Node.js 作為新引入的…

wpf: DataGridTextColumn 數字格式顯示,編輯時取消格式(StringFormat)

參考&#xff1a;Format values in a Datagrid 參考&#xff1a;Remove stringFormat while editing cell in datagrid 使用 DataGridTemplateColumn 實現&#xff1a; <DataGridTemplateColumn Header"Cot (k€)"><DataGridTemplateColumn.CellTemplate&g…

MVP群聊某美國公司的應聘試題(壓死九個還是一個)

某美國公司的應聘試題&#xff08;壓死九個還是一個&#xff09;&#xff0c;測試你的管理方式有二條鐵軌&#xff0c;一條新的&#xff0c;一條舊的。有了新鐵軌后&#xff0c;舊鐵軌不再有火車通過。有一天有十個小孩到鐵軌上玩耍&#xff0c;九個小孩在新鐵軌上玩&#xff0…

JS的常用正則表達式 驗證密碼

JS的正則表達式強&#xff1a;字母數字特殊字符 ^(?![a-zA-z]$)(?!\d$)(?![!#$%^&*]$)(?![a-zA-z\d]$)(?![a-zA-z!#$%^&*]$)(?![\d!#$%^&*]$)[a-zA-Z\d!#$%^&*]$中&#xff1a;字母數字&#xff0c;字母特殊字符&#xff0c;數字特殊字符^(?![a-zA-z]$)…

微軟宣布開源WPF、WinForms和WinUI

在微軟Connect 2018大會上&#xff0c;微軟發布了.NET Core 3.0的第一個預覽版。同時&#xff0c;微軟還宣布&#xff0c;他們將WPF、Windows Forms&#xff08;WinForms&#xff09;和WinUI作為開源項目托管在GitHub上。它們都是基于MIT許可發行&#xff0c;開發人員可以在自己…

帆軟報表(finereport)使用Event 事件對象 (target)修改提示框樣式

target 事件屬性 Event 對象 定義和用法 target 事件屬性可返回事件的目標節點&#xff08;觸發該事件的節點&#xff09;&#xff0c;如生成事件的元素、文檔或窗口。 語法 event.target 定義結束事件JavaScript JS修改內容提示框樣式-https://help.finereport.com/doc-view-2…

python的開發環境有哪些系統_Win10下配置機器學習python開發環境

近期計劃寫一寫機器學習微信小程序的開發教程&#xff0c;但微信開發工具只提供了Windows和Mac OS版本&#xff0c;作為一名長期使用Linux系統的開發人員&#xff0c;雖然始終認為Linux系統才是對開發者最友好的&#xff0c;但微信團隊作出這種選擇&#xff0c;肯定經過調查。不…

動態添加ContextMenuStrip項(ToolStripItem)

//綁定菜單privatevoidBindMenu(DataTable dt) {foreach(DataRow row indt.Rows) { ToolStripItem item newToolStripMenuItem(); item.Name row[0].ToString(); item.Text row[1].ToString(); item.Click newEventHandler(contextMenuStrip1_ItemClick); contextMenuStrip1.It…

07_00_加載資源(Webpack Book)

Loading Assets(加載資源) In this part, you will learn how to load different types of assets using webpack’s loaders. Especially images, fonts, and JavaScript receive particular attention. You also learn how webpack’s loader definitions work.在這部分&…

html與cgi腳本的配合使用

利用boa服務器測試arm開發板上的cgi和html聯合編程的小例程。很簡單&#xff0c;但是當時覺得很有意思。在這里給大家展示一下&#xff0c;高手飄過。 在ubuntu下安裝boa測試環境&#xff0c;即先在本地搭建一個boa的網頁服務器。apt-get install boa。稍作配置即可。我的Boa按…

zabbix3監控ESXI主機

ESXI主機VMware公司企業級虛擬化的解決方案Vsphere的重要組件&#xff0c;也是虛擬機的宿主機&#xff0c;對其監控有著重要的意義&#xff0c;下邊介紹二種方發對其監控。 方法一&#xff1a;通過修改服務端的控制項來進行監控。 虛擬機監控分兩個步驟完成。首先&#xff0c;Z…

mybatis jar包_springboot2整合mybatis-plus3踩到的坑

前言最近在進行項目重構&#xff0c;在架構師的建議下&#xff0c;就把項目中mybatis切換成mybatis-plus。因為mybatis-plus在mybatis的基礎上只做增強不做改變&#xff0c;因此切換的成本很低&#xff0c;就只需改jar和配置內容&#xff0c;原先的代碼無需改動。因為mybatis-p…

java_二進制的前導的零

題目內容&#xff1a; 計算機內部用二進制來表達所有的值。一個十進制的數字&#xff0c;比如18&#xff0c;在一個32位的計算機內部被表達為00000000000000000000000000011000。可以看到&#xff0c;從左邊數過來&#xff0c;在第一個1之前&#xff0c;有27個0。我們把這些0稱…

共享幾套silverlight2 toolkit最新的皮膚控件樣式下載

下載了最新的silverlight2 toolkit看看&#xff0c;發現里面的控件樣式還是多漂亮的&#xff0c;與大家分享下。 blue dark light orange purple red 樣式源碼下載&#xff1a;點擊下載 當然&#xff0c;我最喜歡的還是orange哦。 轉載于:https://www.cnblogs.com/liaohenchen/…

python爬取同花順_Java爬取同花順股票數據(附源碼)

最近有小伙伴問我能不能抓取同花順的數據&#xff0c;最近股票行情還不錯&#xff0c;想把數據抓下來自己分析分析。我大A股&#xff0c;大家都知道的&#xff0c;一個概念火了&#xff0c;相應的股票就都大漲。 如果能及時獲取股票漲跌信息&#xff0c;那就能在剛開始火起來的…

開會=浪費時間?阿里技術團隊這樣開項目復盤會

2019獨角獸企業重金招聘Python工程師標準>>> 阿里妹導讀&#xff1a;復盤是項目結束后必不可少的階段&#xff0c;好的復盤會議能夠有效地促進團隊成長。今天&#xff0c;阿里項目管理專家鹿迦以自身的經驗&#xff0c;為大家分享如何做好一個項目的復盤。這篇文章分…

Spring @Value注解無法正確賦值問題

正確的調用方式為&#xff1a; Component public class IconProperties {Value("${icon.url}")private String url; } public class test{AutowiredIconProperties icon;public void test(){ String url icon.url; } } 這里有三個需要注意的點&#xff1a; 1.Value…

Extjs中使用FusionChart舉例

一 前言&#xff1a; 在項目實施中&#xff0c;設計統計部分經常會使用圖表進行顯示&#xff0c;在Extjs3中內置了圖表控件&#xff0c;但實際表現無法達到3D的美觀效果&#xff0c;通過查找FusionChart可以實現比較美觀的3D或2D圖表顯示。注&#xff1a;FusionChart是個商業…

drawitem設置指定行的背景顏色_Java 為 Excel 中的行設置交替背景色

點擊上方 好好學java &#xff0c;選擇 星標 公眾號重磅資訊、干貨&#xff0c;第一時間送達今日推薦&#xff1a;牛人 20000 字的 Spring Cloud 總結&#xff0c;太硬核了~作者&#xff1a;Jazzz鏈接&#xff1a;https://www.cnblogs.com/jazz-z/p/12665819.html在制作Excel表…

常見的關系型數據庫和非關系型數據及其區別

一、關系型數據庫 關系型數據庫最典型的數據結構是表&#xff0c;由二維表及其之間的聯系所組成的一個數據組織 優點&#xff1a;1、易于維護&#xff1a;都是使用表結構&#xff0c;格式一致&#xff1b;2、使用方便&#xff1a;SQL語言通用&#xff0c;可用于復雜查詢&#x…