Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产欧美成人免费观看,亚洲高清影院,亚洲精品久久99久久一区

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          HTML中的href屬性:掌握超鏈接技巧,提升網(wǎng)站用戶體驗(yàn)

          鏈接在現(xiàn)代網(wǎng)頁(yè)設(shè)計(jì)中發(fā)揮著不可或缺的作用。HTML中,href屬性在anchor標(biāo)簽中扮演著關(guān)鍵角色,使得用戶可以輕松地跳轉(zhuǎn)到其他頁(yè)面或特定部分。在本文中,我們將探討href屬性的基本使用方法以及一些高級(jí)技巧,幫助您提升網(wǎng)站用戶體驗(yàn)。

          1. 基本使用方法

          HTML中,anchor標(biāo)簽用于創(chuàng)建超鏈接,其基本結(jié)構(gòu)如下:

          <a href="鏈接地址">鏈接文本</a>
          

          其中,href屬性指定了跳轉(zhuǎn)的目標(biāo)地址,而鏈接文本則是用戶在頁(yè)面上看到的可點(diǎn)擊的文本。

          1. 絕對(duì)路徑與相對(duì)路徑

          絕對(duì)路徑和相對(duì)路徑是href屬性中常見(jiàn)的兩種取值類型。

          • 絕對(duì)路徑:完整的URL地址,包括協(xié)議(如http://或https://)、域名和頁(yè)面路徑。例如:https://www.example.com/page.html
          • 相對(duì)路徑:相對(duì)于當(dāng)前頁(yè)面的路徑,省略了協(xié)議和域名。例如,假設(shè)當(dāng)前頁(yè)面為https://www.example.com/home.html,則可以使用/about.html指向https://www.example.com/about.html。
          1. 外部鏈接與內(nèi)部鏈接

          外部鏈接指向不同域名的頁(yè)面,而內(nèi)部鏈接則是指向同一域名內(nèi)的頁(yè)面或部分。在創(chuàng)建鏈接時(shí),確保使用正確的協(xié)議(如http://或https://)以避免鏈接無(wú)法正常跳轉(zhuǎn)。

          1. 使用target屬性

          通過(guò)使用target屬性,您可以控制超鏈接的打開(kāi)方式。常見(jiàn)的取值有:

          • _self:在當(dāng)前窗口或標(biāo)簽頁(yè)中打開(kāi)鏈接。
          • _blank:在新窗口或新標(biāo)簽頁(yè)中打開(kāi)鏈接。
          • _parent:在上一級(jí)窗口或框架中打開(kāi)鏈接。
          • _top:清除當(dāng)前窗口的內(nèi)容,然后在新的頂級(jí)窗口中打開(kāi)鏈接。
          1. 使用rel屬性

          rel屬性用于在超鏈接中添加關(guān)聯(lián)信息,如:

          • nofollow:告訴搜索引擎不要按常規(guī)方式索引和跟蹤鏈接。
          • target="_blank" rel="noopener noreferrer":同時(shí)使用target屬性的_blank值和rel屬性,可以禁止在新窗口中打開(kāi)鏈接的JavaScript代碼訪問(wèn)原始頁(yè)面的窗口對(duì)象。
          1. 訪問(wèn)性和 SEO 優(yōu)化

          為了提升網(wǎng)站的訪問(wèn)性和 SEO 排名,請(qǐng)確保鏈接文本清晰、描述性,避免使用過(guò)于短的單詞(如 "點(diǎn)擊這里")。此外,使用有意義的 URL 以便搜索引擎更好地理解您的網(wǎng)頁(yè)內(nèi)容。

          1. 使用CSS美化鏈接

          通過(guò)CSS,您可以對(duì)超鏈接進(jìn)行樣式定義,使其與網(wǎng)站設(shè)計(jì)相一致。例如,更改鏈接的顏色、字體、下劃線等。

          掌握href屬性的使用方法和技巧,您可以創(chuàng)建更加易于導(dǎo)航且訪問(wèn)性較好的網(wǎng)站。在提升用戶體驗(yàn)的同時(shí),還能夠?yàn)樗阉饕嫣峁└嚓P(guān)于網(wǎng)頁(yè)內(nèi)容的信息,從而提高網(wǎng)站的 SEO 排名。

          內(nèi)容是《Web前端開(kāi)發(fā)之Javascript視頻》的課件,請(qǐng)配合大師哥《Javascript》視頻課程學(xué)習(xí)。

          多窗口和窗體:

          可以打開(kāi)多個(gè)瀏覽器窗口,每個(gè)窗口都是獨(dú)立的;

          一個(gè)瀏覽器窗口可能包含多個(gè)標(biāo)簽頁(yè);每個(gè)標(biāo)簽頁(yè)都是獨(dú)立的上下文,都是獨(dú)立的window對(duì)象,而且相互之間互不干擾;

          但是窗口也并不總是和其他窗口完全沒(méi)有關(guān)系;一個(gè)窗口或標(biāo)簽頁(yè)中的腳本可以打開(kāi)新的窗口或標(biāo)簽頁(yè),如此,這些多窗口或標(biāo)簽頁(yè)就可以互相操作;

          打開(kāi)窗口:

          window.open()方法,打開(kāi)一個(gè)新的瀏覽器窗口、標(biāo)簽頁(yè),導(dǎo)航到一個(gè)指定的URL;

          語(yǔ)法:window.open(url,name,features,replace);url為打開(kāi)新窗口的url,name為窗口目標(biāo),features設(shè)置窗口特性參數(shù)列表,replace為Boolean值,指定是否用新窗口替換當(dāng)前頁(yè)面;

          一般使用第一個(gè)參數(shù),如果也省略該參數(shù)或使用空字符串,則會(huì)打開(kāi)一個(gè)空頁(yè)面的URL about:blank;

          如果使用第二個(gè)參數(shù),而且該參數(shù)是已有窗口或框架的名稱,就會(huì)在該窗口或框架中加載指定的URL;否則彈出新窗口,并將新窗口的name命名為該參數(shù),如果省略此參數(shù),則會(huì)使用指定的“_blank”打開(kāi)一個(gè)新的、未命名的窗口;

          第二個(gè)參數(shù)也可以是:_self、_parent、_top、_blank;

          窗口的名字也可作為<a>和<form>元素上target屬性的值,用來(lái)表示引用的文檔或提交處理的頁(yè)面;

          <script>
          window.open("https://www.zeronetwork.cn/","myWindow");
          </script>
          <a href="https://www.google.cn/" target="myWindow">baidu.com</a>

          窗口特性屬性:

          第三個(gè)參數(shù)是一個(gè)逗號(hào)分隔的設(shè)置字符串,表示在新窗口中都顯示哪些特性;如果省略,則以默認(rèn)的形式呈現(xiàn);

          • fullscreen:yes / no,是否最大化;僅限IE;
          • height:數(shù)值,新窗口的高,不能小于100;
          • left:數(shù)值,新窗口的左坐標(biāo),不能是負(fù)值;
          • location:yes / no,是否顯示地址欄;不同瀏覽器的默認(rèn)值不同;設(shè)置為no,地址欄有可能會(huì)隱藏,也有可能會(huì)被禁用;
          • menubar:yes / no,是否顯示菜單欄,默認(rèn)為no;
          • resizable:yes / no,是否能改變大小,默認(rèn)為no ;
          • scrollbars:yes / no,如果內(nèi)容區(qū)域大于視口,是否允許滾動(dòng),默認(rèn)為no;
          • status:yes / no,是否顯示狀態(tài)欄,默認(rèn)為no;
          • toolbar:yes / no,是否顯示工具欄,默認(rèn)為no;
          • top:數(shù)值,新窗口的上坐標(biāo),不能是負(fù)值;
          • width:數(shù)值,新窗口的寬,不能小于100;

          字符串格式為:設(shè)置使用鍵值對(duì),且全部使用逗號(hào)分隔,而且不能有空格;

          window.open("https://www.zeronetwork.cn/","myWindow",
                      "width=400,height=400,top=50,left=50,resizable=yes");

          顯式指定這些特性,打開(kāi)的應(yīng)該是新窗口,而不是新標(biāo)簽頁(yè);這個(gè)參數(shù)是非標(biāo)準(zhǔn)的,而且HTML5也主張瀏覽器應(yīng)該忽略它;

          另外,出于安全考慮,瀏覽器包含對(duì)可能指定的功能的限制,如,通常不允許指定一個(gè)太小的或者位于屏幕之外的窗口,并且一些瀏覽器不允許創(chuàng)建一個(gè)沒(méi)有狀態(tài)欄的窗口;

          第四個(gè)參數(shù)只有在設(shè)置了第二個(gè)參數(shù)命名的是一個(gè)已存在的窗口時(shí)才有用;它是一個(gè)布爾值,聲明了由第一個(gè)參數(shù)指定的URL是替換掉窗口瀏覽歷史的當(dāng)前記錄(true)還是應(yīng)該在窗口瀏覽歷史中創(chuàng)建一個(gè)新的記錄(false),默認(rèn)為false;

          window.open()會(huì)返回一個(gè)window對(duì)象,用于操作新創(chuàng)建的窗口;該引用可以操作新窗口的內(nèi)容,從而就可以在一個(gè)窗口中控制另一個(gè)窗口的內(nèi)容,例如向一個(gè)新開(kāi)的瀏覽器窗口中輸出內(nèi)容;

          var w = window.open();  // 打開(kāi)一個(gè)新的空白窗口
          w.document.write("<h2>零點(diǎn)網(wǎng)絡(luò)</h2>");
          w.alert("詳情請(qǐng)進(jìn)入https://www.zeronetwork.cn/");
          w.location = "https://www.zeronetwork.cn/";

          某些瀏覽器在默認(rèn)情況下可能不允許針對(duì)主瀏覽器窗口調(diào)整大小或移動(dòng),但不允許針對(duì)通過(guò)open()創(chuàng)建的窗口調(diào)整大小或移動(dòng),如:

          var newWindow = window.open("https://www.zeronetwork.cn/","myWindow",
                      "width=400,height=400,top=50,left=50,resizable=yes");
          newWindow.resizeTo(600,600);
          newWindow.moveTo(200,200);

          注:有些瀏覽器默認(rèn)不允許這樣操作;

          窗口opener屬性:

          opener屬性是新窗口對(duì)打開(kāi)它的原始窗口的引用;即指向調(diào)用window.open()的窗口或框架;但只在彈出窗口的最外層window對(duì)象(top)中有定義;

          var newWindow = window.open("https://www.zeronetwork.cn/","myWindow",
                      "width=400,height=400,top=50,left=50,resizable=yes");
          console.log(newWindow.opener === window); // true
           
          <!-- 主窗口 -->
          <input type="text" id="selectCity" placeholder="選擇" />
          <script>
          var selectCity = document.getElementById("selectCity");
          selectCity.onclick = function(){
              var newWin = window.open("select.html","newWin","width=400,height=400");
          }
          </script>
           
          <!-- 新窗口 -->
          <select id="city">
              <option value="beijing">北京</option>
              <option value="nanjing">南京</option>
              <option value="anhui">安徽</option>
          </select>
          <script>
          var city = document.getElementById("city");
          city.onchange = function(){
              window.opener.document.getElementById("selectCity").value = city.options[city.selectedIndex].value;
              window.close();
          }
          </script>

          有些瀏覽器(如IE8和Chrome)會(huì)在獨(dú)立的進(jìn)程中運(yùn)行每個(gè)標(biāo)簽頁(yè),當(dāng)一個(gè)標(biāo)簽頁(yè)打開(kāi)另一個(gè)標(biāo)簽頁(yè)時(shí),如果兩個(gè)window對(duì)象之間需要彼此通信,那么新標(biāo)簽頁(yè)就不能運(yùn)行在獨(dú)立的進(jìn)程中。在Chrome中,將新創(chuàng)建的標(biāo)簽頁(yè)的opener屬性設(shè)置為null,即表示在單獨(dú)的進(jìn)程中運(yùn)行新標(biāo)簽頁(yè)。

          newWindow.opener = null;

          標(biāo)簽頁(yè)之間的聯(lián)系一旦切斷,將沒(méi)有辦法恢復(fù)。

          window.close()關(guān)閉窗口:

          對(duì)于主窗口,如果沒(méi)有得到用戶的允許是不能關(guān)閉它的;但彈出窗口可以不經(jīng)用戶允許可以關(guān)閉自己;

          窗口關(guān)閉后,窗口的引用仍然存在,可以使用window.closed屬性檢測(cè),但在實(shí)際場(chǎng)景中沒(méi)有多大用處;

          function openWin(){
              var newWindow = window.open("https://www.zeronetwork.cn/","myWindow",
                      "width=400,height=400,top=50,left=50,resizable=yes");
              newWindow.document.write("<h2>零點(diǎn)網(wǎng)絡(luò)</h2>");
              function closeWin(){
                  newWindow.close();
                  //alert(newWindow.closed);
                  if(newWindow.close)
                      alert("已關(guān)閉");
              }
              setTimeout(closeWin,3000);
          }
          openWin();

          注:document對(duì)象也有close()方法,為了避免混淆,所以調(diào)用close()方法時(shí),要顯式調(diào)用,即使用window.close();

          安全限制:

          大多數(shù)瀏覽器針對(duì)彈出窗口實(shí)施了多方面的安全限制,如:不允許在屏幕之外創(chuàng)建彈出窗口,不允許將彈出窗口移動(dòng)到屏幕之外,不允許關(guān)閉狀態(tài)欄等;不允許關(guān)閉地址欄,默認(rèn)情況下不允許移動(dòng)彈出窗口或調(diào)整其大小;或者部分瀏覽器不支持修改狀態(tài)欄,始終顯示地址欄等;

          通常,對(duì)于open()方法只有當(dāng)用戶手動(dòng)單擊按鈕或超鏈接時(shí)才會(huì)調(diào)用;如果嘗試在瀏覽器初始載入時(shí)開(kāi)啟一個(gè)彈出窗口時(shí),通常會(huì)被屏蔽;

          彈出窗口屏蔽程序:

          大多數(shù)瀏覽器都內(nèi)置有彈出窗口屏蔽程序,如果沒(méi)有內(nèi)置,可以安裝第三方實(shí)用工具;內(nèi)置屏蔽會(huì)使window.open可能返回null,第三方會(huì)返回錯(cuò)誤;通過(guò)需要檢測(cè)其返回值;

          // 內(nèi)置的屏蔽程序
          var newWin = window.open("https://www.zeronetwork.cn/","_blank");
          if(newWin == null){
              alert("彈窗被阻止!");
          }
           
          // 第三方
          var blocked = false;
          try{
              var newWin = window.open("https://www.zeronetwork.cn/","_blank");
              if(newWin == null)
                  blocked = true;
          }catch(e){
              blocked = true;
          }
          if(blocked){
              alert("彈窗被屏蔽");
          }

          彈出窗口通信:

          主窗口向新窗口傳值,直接為新窗口window對(duì)象添加成員,如:

          // 主窗口
          var newWin = window.open("select.html","_blank");
          var person = {
              name:"wangwei",
              sex: true,
              age: 18
          }
          newWin.person = person;
           
          // 新窗口
          document.write("姓名:",person.name);
          document.write("性別:",person.sex);
          document.write("年齡:",person.age);

          新窗口向主窗口傳值,通過(guò)window.opener獲取原始窗口的屬性或者h(yuǎn)tml元素;

          <!-- 主窗口 -->
          <div id="mydiv"></div>
          <script>
          var newWin = window.open("select.html","_blank");
          function showDiv(str){
              var mydiv = document.getElementById("mydiv");
              mydiv.innerHTML = str;
          }
          </script>
           
          <script>
          // 新窗口
          var str = "零點(diǎn)網(wǎng)絡(luò)";
          window.opener.showDiv(str);
          window.close();
          </script>

          通過(guò)普通的get傳值;

          // 主窗口
          function putId(id){
              window.open("select.html?id=" + encodeURIComponent(id),"putWin");
          }
          putId("1002");
           
          // 新窗口
          var id = location.search;
          id = id.split("=");
          console.log(id[1]);
          document.write(decodeURIComponent(id[1]));

          框架窗口:

          如果頁(yè)面使用了框架集合(包含frameset和iframe),則每個(gè)框架都由它自己的window對(duì)象表示,并存放在frames集合中;

          與相互獨(dú)立的標(biāo)簽頁(yè)或窗口不同,框架窗口之間并不是相互獨(dú)立的;

          每個(gè)window對(duì)象都有一個(gè)name屬性,其中包含框架的名稱;

          <frameset rows="100,*">
              <frame src="top.html" name="topFrame" />
              <frameset cols="50%,50%">
                  <frame src="left.html" name="leftFrame" />
                  <frame src="right.html" name="rightFrame" />
              </frameset>
          </frameset>

          在frames集合中,可用數(shù)字(下標(biāo)從0開(kāi)始,從左到右,從上到下)訪問(wèn);即可以使用frames[0]表示第1個(gè)子窗口、frames[1]表示第2個(gè)子窗口;

          可使用名稱對(duì)框架進(jìn)行訪問(wèn),該名稱就是該框架的name屬性,如 window.frames[“topFrame”]引用;

          也可以window.topFrame 使用架框的名字訪問(wèn);

          window.onload = function(){
              console.log(frames);
          var topFrame = frames[0];
              console.log(topFrame);
              console.log(topFrame.name);
              var leftFrame = window.frames["leftFrame"];
              console.log(leftFrame.name);
              console.log(window.rightFrame.name);
          }

          可使用frames.length 取得框架集合長(zhǎng)度;

          如果是內(nèi)聯(lián)框架,那就更簡(jiǎn)單了,如:

          <iframe src="right.html" name="myFrame" width="200" height="200"></iframe>
          <script>
              console.log(frames);
              console.log(frames[0].name);
          </script>

          對(duì)于頂級(jí)窗口的window對(duì)象來(lái)說(shuō),可以看作為由若干個(gè)子窗口組成的窗口數(shù)組,也就是說(shuō)可以把window對(duì)象當(dāng)作為窗口的集合,如:

              console.log(window.length);
              console.log(window[0]);

          但在實(shí)際場(chǎng)景中,最好還是使用frames來(lái)代替window,因?yàn)閒rames顯得更清晰些;

          對(duì)于<iframe>元素,如果設(shè)置了id,也可以通過(guò)document.getElementById()方法獲取,如:

          var myframe = document.getElementById("myframe");
          console.log(myframe);
          myframe.src = "one.html";

          <iframe>元素有contentWindow屬性,引用該窗體的window對(duì)象,所以此窗體的window對(duì)象就是:

          var mywin = document.getElementById("myframe").contentWindow;
          console.log(mywin);
          mywin.document.write("是內(nèi)聯(lián)框架window對(duì)象");

          可以進(jìn)行反向操作,通過(guò)window對(duì)象的frameElement屬性,來(lái)獲取該窗體的<iframe>元素;表示頂級(jí)窗口的window對(duì)象的frameElement屬性為null,窗體中的window對(duì)象的frameElement屬性不是null;

          var myframe = document.getElementById("myframe");
          var mywin = myframe.contentWindow;
          console.log(mywin.frameElement);
          console.log(mywin.frameElement === myframe);
          console.log(window.frameElement);
           
          // 在one.html會(huì)返回<iframe id="myframe" src="one.html"></iframe>
          console.log(window.frameElement);

          盡管可以通過(guò)document.getElementById()和contentWindow屬性來(lái)獲取窗口中的子窗體的引用,但在實(shí)際場(chǎng)景中,用的還是比較少,主要還是使用frames屬性來(lái)訪問(wèn);

          top對(duì)象:

          可以使用top引用最頂層(外層)框架,就是瀏覽器窗口;使用它可以確保在一個(gè)框架中正確的訪問(wèn)另一個(gè)框架;

          // 框架集頁(yè)面
          window.onload = function(){
              console.log(frames);
              console.log(top);
          console.log(top === frames);  // true
          console.log(top === window);  // true
              console.log(frames === window);  // true
          }
          // 框架頁(yè)面
          console.log("topFrame:",frames);
          console.log("topFrame:",top);
          console.log("topFrame:",top === frames);  // false

          因此,使用top訪問(wèn)框架時(shí),也可以如下:

              console.log(top[0].name);
              console.log(top["topFrame"].name);
              console.log(top.topFrame.name);
           
              console.log(top.frames[0].name);
              console.log(top.frames["topFrame"].name);
          console.log(top.frames === frames);  // true

          parent對(duì)象:

          與top相對(duì)的另一個(gè)window對(duì)象是parent,其指的當(dāng)前框架的直接上層框架,即父框架;

          parent在不同的位置指不同的對(duì)象;在某些情況下,parent有可能等于top,但在沒(méi)有框架的情況下,parent一定等于top(此時(shí),它們都等于window),如:

          <!-- frameset.html -->
          <frameset rows="100,*">
              <frame src="top.html" name="topFrame" />
              <frameset cols="50%,50%">
                  <frame src="left.html" name="leftFrame" />
                  <frame src="right.html" name="rightFrame" />
              </frameset>
          </frameset>
          <!-- right.html -->
          <frameset cols="50%,50%">
              <frame src="one.html" name="oneFrame" />
              <frame src="two.html" name="twoFrame" />
          </frameset>
          
          // one.html中的代碼
          var parentFrame = window.parent;
          console.log("從one.html中訪問(wèn):",parentFrame.name);  // rightFrame
          parentFrame.frames[1].document.write("<h2>框架訪問(wèn)</h2>");
           
          // top.html中的代碼
          var parentFrame = window.parent;
          console.log("top:", parentFrame.name);
          console.log("top:", parentFrame.length);
          console.log("top:", parentFrame.frames.length);
          console.log("top:", parentFrame === top);  // true
          console.log("top:", parentFrame.frames[1].name);
          parentFrame.frames[1].document.write("<h2>是left頁(yè)面嗎?</h2>");

          注:除非最頂層的窗口是通過(guò)window.open()打開(kāi)的,否則其window對(duì)象的name屬性不會(huì)包含任何值;

          self對(duì)象:

          指向當(dāng)前window自身,即self和window可以互換使用;

          引入self的目的只是為了與top和parent對(duì)象對(duì)應(yīng)起來(lái);

          對(duì)于頂級(jí)窗口,parent == self; // true

          注:所有的這些對(duì)象都是window對(duì)象的屬性,可以通過(guò)window.parent、window.top等形式訪問(wèn);同時(shí),這也意味著可以將不同層次的window對(duì)象連接起來(lái),如:window.parent.parent.frames[0];

          窗口交互:

          對(duì)于一個(gè)復(fù)雜的框架,窗口之間可以相互訪問(wèn),它主要包括對(duì)框架自身的引用、父窗口對(duì)子窗口的引用、子窗口對(duì)父窗口及其他窗口的引用、對(duì)頂級(jí)窗口的引用;

          在使用框架的情況下,瀏覽器中會(huì)存在多個(gè)Global對(duì)象,即每個(gè)窗口都會(huì)有自己的執(zhí)行上下文,在每個(gè)框架中定義的全局變量會(huì)自動(dòng)成為框架中window對(duì)象的屬性;

          <!-- right.html -->
          <div id="myDiv"></div>
          <div id="imgDiv"></div>
          <script>
          function showImg(){
              var imgDiv = document.getElementById("imgDiv");
              var img = document.createElement("img");
              img.src = "images/1.jpg";
              imgDiv.appendChild(img);
          }
          </script>
           
          // 框架集頁(yè)面
          window.onload = showDiv;
          function showDiv(){
              var rightFrame = parent[2];
              var myDiv = rightFrame.document.getElementById("myDiv");
              myDiv.innerHTML = "<h2>零點(diǎn)網(wǎng)絡(luò)</h2>";
          }
           
          <!-- top.html -->
          <h2>Top頁(yè)面</h2>
          <div><button id="showBtn">顯示圖片</button>
              <button id="closeBtn">關(guān)閉圖片</button></div>
          <script>
          window.onload = function(){
              var showBtn = document.getElementById("showBtn");
              var closeBtn = document.getElementById("closeBtn");
              var rightFrame = top[2];
              showBtn.onclick = rightFrame.showImg;
              closeBtn.onclick = closeImg;
          }
          function closeImg(){
              var rightFrame = top.rightFrame;
              var imgDiv = rightFrame.document.getElementById("imgDiv");
              imgDiv.innerHTML = "";
          }
          </script>

          對(duì)于構(gòu)造函數(shù),它也是函數(shù),所以當(dāng)用構(gòu)造函數(shù)和相關(guān)的原型對(duì)象定義一個(gè)自定義類時(shí),這個(gè)類只在一個(gè)單獨(dú)的窗口中定義;子窗口也可以引用這個(gè)類;

          對(duì)于內(nèi)置類來(lái)說(shuō),和自定義類就有所不同了;內(nèi)置的類都會(huì)在所有的窗口中自動(dòng)預(yù)定義,即每個(gè)窗口的window對(duì)象都包含原生類型的構(gòu)造函數(shù),因此每個(gè)框架一套自己的構(gòu)造函數(shù),這些構(gòu)造函數(shù)一一對(duì)應(yīng),但并不相等;如:top.Object并不等于top.frames[0].Object,這個(gè)問(wèn)題會(huì)影響到對(duì)跨框架傳遞的對(duì)象使用instanceof操作符;

          WindowProxy對(duì)象:

          window對(duì)象是客戶端Javascript的全局變量;但是從技術(shù)上來(lái)看,并不是這樣的;Web瀏覽器每次向窗口或窗體中載入新的內(nèi)容,它都會(huì)開(kāi)始一個(gè)新的JavaScript執(zhí)行上下文,包含一個(gè)新創(chuàng)建的全局對(duì)象;但是當(dāng)多個(gè)窗口或窗體在使用時(shí),有一個(gè)重要的概念,盡管窗體或窗口載入了新的文檔,但是引用窗體或窗口的window對(duì)象還仍然是一個(gè)有效的引用;

          所以客戶端Javascript有兩個(gè)重要的對(duì)象;客戶端全局對(duì)象處于作用域鏈的頂級(jí),并且是全局變量和函數(shù)所定義的地方;事實(shí)上,全局對(duì)象會(huì)在窗口或窗體載入新內(nèi)容時(shí)被替換;

          而我們稱之為“window對(duì)象”的對(duì)象實(shí)際上不是全局對(duì)象,而是全局對(duì)象的一個(gè)代理;每次查詢或設(shè)置window對(duì)象的屬性時(shí),就會(huì)在窗口或窗體的當(dāng)前全局對(duì)象上查詢或設(shè)置相同的屬性;

          HTML5規(guī)范稱這個(gè)代理對(duì)象為WindowProxy;由于它的代理行為,除了有更長(zhǎng)的生命周期之外,代理對(duì)象表現(xiàn)得像真正的全局對(duì)象;如果可以比較兩個(gè)對(duì)象,那么區(qū)分它們會(huì)很困難;但是事實(shí)上,沒(méi)有辦法可以引用到真正的客戶端全局對(duì)象;全局對(duì)象處于作用域鏈的頂端,但是window、self、top、parent以及窗體的屬性全部返回代理對(duì)象;window.open()也返回代理對(duì)象;甚至頂級(jí)函數(shù)里this的值也是代理對(duì)象,而不是真正的全局對(duì)象;


          Web前端開(kāi)發(fā)之Javascript-零點(diǎn)程序員-王唯

          tml屬性值可以不用引號(hào)嗎,實(shí)例驗(yàn)證

          html屬性值可以不用引號(hào)

          HTML元素的屬性值可以不適用引號(hào)來(lái)包裹,瀏覽器一樣可以將其進(jìn)行渲染。不過(guò),如果這樣寫HTML的代碼的話,屬性與屬性值之間需要用空格來(lái)進(jìn)行隔開(kāi),避免后面的屬性變成前面屬性的屬性值。

          提示:雖然如此,但是還是建議使用引號(hào)來(lái)寫HTML的代碼,個(gè)人感覺(jué)這樣更規(guī)范,更便于閱讀和對(duì)代碼的維護(hù)、管理。

          html屬性值不加引號(hào)實(shí)例代碼,及在線編輯器

          下方的實(shí)例中,編寫了兩個(gè)鏈接的a元素,并添加多個(gè)屬性和屬性值,且都不使用引號(hào),其中一個(gè)使用空格隔開(kāi)屬性值,一個(gè)未使用,運(yùn)行一下看看效果如何:

          <a href=https://www.x1y1z1.com/ style=color:green target=_blank>笨鳥工具網(wǎng)站首頁(yè),使用空格隔開(kāi),點(diǎn)擊可打開(kāi)本站首頁(yè),功能與加引號(hào)一樣</a>
          <br>
          <a href=https://www.x1y1z1.com/style=color:green>笨鳥工具網(wǎng)站首頁(yè),未使用空格,看看文字是否為綠色,看看鏈接是否還指向首頁(yè)?</a>

          原文:html屬性值可以不用引號(hào)嗎,實(shí)例驗(yàn)證 | HTML教程

          免責(zé)聲明:內(nèi)容僅供參考。


          主站蜘蛛池模板: 人妖在线精品一区二区三区| 亚洲熟女乱色一区二区三区 | 亚洲熟妇AV一区二区三区宅男| 亚洲一区无码中文字幕乱码| 久久国产免费一区二区三区| 日本中文字幕一区二区有码在线| 无码AV中文一区二区三区| 国产激情无码一区二区app| 久久久精品人妻一区二区三区| 国产精品一区视频| 波多野结衣的AV一区二区三区| 少妇精品无码一区二区三区| 国产欧美色一区二区三区| 狠狠色婷婷久久一区二区三区| 精品动漫一区二区无遮挡| 国产一区三区三区| 精品国产一区二区三区在线| 免费看一区二区三区四区| 在线播放精品一区二区啪视频| 午夜福利av无码一区二区| 视频一区二区精品的福利| 亚洲一区二区三区免费观看| 国模吧无码一区二区三区| 亚洲国产成人久久一区久久| 麻豆va一区二区三区久久浪| 亚洲国产一区二区a毛片| 精品国产一区二区22| 一区二区三区视频免费观看| 亚欧免费视频一区二区三区| 亚洲国产成人一区二区三区| 精品国产亚洲一区二区三区| 亚洲AV综合色一区二区三区 | 久久99精品免费一区二区| 人成精品视频三区二区一区| 亚洲国产精品一区二区九九| 亚洲午夜日韩高清一区| 亚洲综合无码AV一区二区| 插我一区二区在线观看| 国产无线乱码一区二三区 | 麻豆天美国产一区在线播放| 精品国产乱码一区二区三区 |