首頁 web前端 js教程 Firefox中使用outerHTML的2種解決方法_javascript技巧

Firefox中使用outerHTML的2種解決方法_javascript技巧

May 16, 2016 pm 04:45 PM
firefox

對於DOM物件的innerHTML屬性想必大家都不會陌生,但是outerHTML用起來相對於會少一點了,innerHTML屬性返回的是DOM物件從開始標籤到結束標籤中所包含的HTML,而outerHTML屬性返回的是包括DOM物件本身標籤在內的HTML,下圖能很好的解釋兩個屬性的區別:
Firefox中使用outerHTML的2種解決方法_javascript技巧

outerHTML最開始是屬於IE的私有屬性,可以查看MSDN上的說明:outerHTML Property(http://msdn.microsoft.com/en-us/library/ms534310(VS.85).aspx)。目前IE、Chrome、Safari、Opera都能支援這個屬性,杯具的是outerHTML不支援Firefox,在Firefox中該屬性永遠返回undefined,值得欣慰的是HTML5會加入這個屬性。
讓Firefox支援outerHTML屬性可以透過擴充HTMLElement的原型來實現:

複製程式碼 程式碼如下:

if (typeof(HTMLElement) ! {
 HTMLElement.prototype.__defineSetter__("outerHTML", function(s) {
 var r = this.ownerDocument.createRange();
 r.setStartBefore(this); .createContextualFragment(s);
 this.parentNode.replaceChild(df, this);
 return s;
 });
 HTMLElement.prototype.__defineGML( 🎜> var a = this.attributes, str = " for (; i  if (a[i].specified)
 str = " " Hormis dans les machines a sous preferees universelles, les casinos offrent des jeux par exemple Grandes six roues, Pai Go Poker, Blackjack, Baccarat, la Roulette et le Craps, entre autres. a[i].name "="" a[i].value """;
 if (!this.canHaveChildren)
 return str " />";
 return str ">" this.innerHTML "";
 });

 HTMLElement.prototype.__defineGetter__("canHaveChildren", function(){ return

 !/^(area|base|basefont|
 col|frame|hr|img|br| input|isindex|link|meta
 |param)$/.test(this.tagName.toLowerCase());
 });



此方法出自W3Help(http://www.w3help.org/zh-cn/causes/SD9017),有點繁瑣,還要侵入原型。還有一個更簡單取代的辦法,先建立一個空節點,將要取得outerHTML屬性的DOM物件加入這個空節點中,然後再存取這個空節點的innerHTML就行了:



複製程式碼 程式碼如下:function outerHtml(elem){ // 建立一個空div節點
 var div = document.createElement("div");
 // 將複製的elemCopy插入到空div節點中 
 div.appendChild(elem.cloneNode(true));
 // 回傳div的HTML內容
 return div.innerHTML 
};};


比起上面的辦法,不用去動原型,程式碼量也少了很多,相信還會有其他的解決辦法。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Ubuntu Linux如何移除Firefox Snap? Ubuntu Linux如何移除Firefox Snap? Feb 21, 2024 pm 07:00 PM

要在UbuntuLinux中刪除FirefoxSnap,可以按照以下步驟進行操作:打開終端機並以管理員身份登入Ubuntu系統。執行以下命令以卸載FirefoxSnap:sudosnapremovefirefox系統將提示你輸入管理員密碼。輸入密碼並按下Enter鍵以確認。等待指令執行完成。一旦完成,FirefoxSnap將被完全刪除。請注意,這將刪除透過Snap套件管理器安裝的Firefox版本。如果你透過其他方式(如APT套件管理器)安裝了另一個版本的Firefox,則不會受到影響。透過上述步驟

mozilla firefox可以卸載嗎 mozilla firefox可以卸載嗎 Mar 15, 2023 pm 04:40 PM

mozilla firefox可以卸載;firefox屬於第三方瀏覽器,如果不需要,完全可以卸載。卸載方法:1、在開始功能表中,依序點選「Windwos系統」-「控制台」;2、在「控制台」介面中,點選「程式與功能」;3、在新介面中,找到並雙擊火狐瀏覽器圖示;4、在卸載彈窗中,點選「下一步」;5、點選「卸載」即可。

火狐瀏覽器Firefox 113 新特性:支援AV1動圖、增強密碼產生器與畫中畫特性 火狐瀏覽器Firefox 113 新特性:支援AV1動圖、增強密碼產生器與畫中畫特性 Mar 05, 2024 pm 05:20 PM

近日消息,Mozilla在發布Firefox112穩定版的同時,也宣布下個主要版本Firefox113進入Beta頻道,支援AV1動圖、增強密碼產生器和畫中畫特性。火狐瀏覽器Firefox113主要新功能/新特性如下支援AV1格式動圖(AVIS)透過引入特殊字元來增強密碼產生器的安全性增強畫中畫功能,支援後退、顯示影片時間,能更輕鬆地啟用全螢幕模式為Debian和Ubuntu發行版提供官方DEB安裝檔更新書籤導入功能,預設支援導入書籤的圖示在支援的硬體上預設啟用硬體加速AV1視訊解碼使用w

Scrapy中如何使用Mozilla Firefox來解決掃碼登入的問題? Scrapy中如何使用Mozilla Firefox來解決掃碼登入的問題? Jun 22, 2023 pm 09:50 PM

對於爬蟲爬取需要登入的網站,驗證碼或掃碼登入是一個很困擾的問題。 Scrapy是Python中一個非常好用的爬蟲框架,但在處理驗證碼或掃碼登入時,需要採取一些特殊的措施。作為一個常見的瀏覽器,MozillaFirefox提供了一個解決方案,可以幫助我們解決這個問題。 Scrapy的核心模組是twisted,它只支援非同步請求,但有些網站需要使用cookie和

火狐瀏覽器Firefox 115發布,支援Win7/Win8.1的最後一個版本 火狐瀏覽器Firefox 115發布,支援Win7/Win8.1的最後一個版本 Mar 04, 2024 pm 04:46 PM

今日最新消息,Mozilla今天正式發布了火狐瀏覽器Firefox115穩定版更新,本次更新最值得關註一點是,這是支援Win7/Win8、macOS10.12、10.13和10.14的最後一個版本。下載網址:https://ftp.mozilla.org/pub/firefox/releases/115.0/Mozilla在官方更新日誌中表示:微軟於2023年1月結束了對Win7和Win8系統的支持,而今天發布的Firefox115版本是上述系統使用者收到的最後一個版本更新。 Win7和Win8用戶

Ubuntu 23.10預設將在原生 Wayland 模式下執行火狐瀏覽器 Firefox Ubuntu 23.10預設將在原生 Wayland 模式下執行火狐瀏覽器 Firefox Feb 29, 2024 am 10:10 AM

Canonical公司近日宣布,在即將發布的Ubuntu23.10中,FirefoxSnap已配置預設在Wayland模式下運作。註:Ubuntu目前已經預設Wayland會話,Firefox也能正常運作。不過目前FirefoxSnap其實是以XWayland相容模式下運行,而不是嚴苛的原生Wayland模式。 Canonical宣布預設會在Wayland模式下運行Firefox瀏覽器,從而在HiDPI顯示器不會出現介面模糊、縮放失真等問題,並且支援拖曳、手勢捏合等觸控手勢。如上所述,Ubunt

火狐瀏覽器Firefox 115 Beta 發布:引入 Quick Actions 火狐瀏覽器Firefox 115 Beta 發布:引入 Quick Actions Mar 04, 2024 pm 03:10 PM

昨天新消息,Mozilla發表Firefox114穩定版更新的同時,也將開發的重心遷移到Firefox115版本上,並於今天推出了Beta版本。從報告中獲悉,Firefox115引入了原本計劃在114版本中上線的CookieBannerReduction和QuickActions按鈕。使用者在Firefox115版本中啟用CookieBannerReduction之後,造訪支援的網站,瀏覽器在cookiebanners上會自動拒絕cookie要求。第二項功能是網址列上的QuickActions按鈕

Apache/Nginx下Font Awesome在Firefox中不顯示怎麼解決 Apache/Nginx下Font Awesome在Firefox中不顯示怎麼解決 May 21, 2023 pm 05:43 PM

一、nginx伺服器解決方法伺服器使用的是nginx,要在回應的頭部添加access-control-allow-origin字段,新增方法是用add_header指令:設定範例:複製程式碼如下:location/assets/{gzip_staticon; expiresmax;add_headercache-controlpublic;add_headeraccess-control-allow-origin*;}二、apache伺服器解決方法fontawesome(firefox無法顯示火

See all articles