最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2014年06月07日 09:13:27   作者:  
這篇文章主要介紹了Firefox中使用outerHTML的2種解決方法,需要的朋友可以參考下

對于DOM對象的innerHTML屬性想必大家都不會陌生,但是outerHTML用起來相對于會少一點(diǎn)了,innerHTML屬性返回的是DOM對象從開始標(biāo)簽到結(jié)束標(biāo)簽中所包含的HTML,而outerHTML屬性返回的是包括DOM對象本身標(biāo)簽在內(nèi)的HTML,下圖能很好的解釋兩個屬性的區(qū)別:


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

復(fù)制代碼 代碼如下:

if (typeof(HTMLElement) != "undefined") {
 HTMLElement.prototype.__defineSetter__("outerHTML", function(s) {
 var r = this.ownerDocument.createRange();
 r.setStartBefore(this);
 var df = r.createContextualFragment(s);
 this.parentNode.replaceChild(df, this);
 return s;
 });
 HTMLElement.prototype.__defineGetter__("outerHTML", function(){
 var a = this.attributes, str = "<" this.tagName, i = 0;
 for (; i < a.length; 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 <a >Roulette </a>et le Craps, entre autres. a[i].name "="" a[i].value """;
 if (!this.canHaveChildren)
 return str " />";
 return str ">" this.innerHTML "<!--" this.tagName "-->";
 });

 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),有點(diǎn)繁瑣,而且還要侵入原型。還有一種更簡單代替的辦法,先創(chuàng)建一個空節(jié)點(diǎn),將要獲取outerHTML屬性的DOM對象添加到這個空節(jié)點(diǎn)中,然后訪問這個空節(jié)點(diǎn)的innerHTML就行了:

復(fù)制代碼 代碼如下:

function outerHtml(elem){
 if(typeof elem === "string") elem = document.getElementById(elem);
 // 創(chuàng)建一個空div節(jié)點(diǎn)
 var div = document.createElement("div");
 // 將復(fù)制的elemCopy插入到空div節(jié)點(diǎn)中 
 div.appendChild(elem.cloneNode(true));
 // 返回div的HTML內(nèi)容
 return div.innerHTML; 
};

比起上面的辦法,不用去動原型,代碼量也少了很多,相信還會有其他的解決辦法。

您可能感興趣的文章:

相關(guān)文章

  • 追蹤discord.js中刪除消息的用戶方法實(shí)例詳解

    追蹤discord.js中刪除消息的用戶方法實(shí)例詳解

    這篇文章主要為大家介紹了如何追蹤discord.js中刪除消息的用戶方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 整理一些JavaScript的IE和火狐的兼容性注意事項

    整理一些JavaScript的IE和火狐的兼容性注意事項

    整理一些JavaScript的IE和火狐的兼容性解決方法,有更好的方法多多交流
    2011-03-03
  • js圖片無縫滾動插件使用詳解

    js圖片無縫滾動插件使用詳解

    這篇文章主要為大家詳細(xì)介紹了js圖片無縫滾動插件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 微信小程序?qū)W習(xí)之常用的視圖組件

    微信小程序?qū)W習(xí)之常用的視圖組件

    但是最近由于開發(fā)人手不夠,一個人開啟全棧,一邊寫接口一邊寫頁面,剛好項目中有一個需求,所以嘗試使用自定義組件開發(fā)這塊,下面這篇文章主要給大家介紹了關(guān)于微信小程序?qū)W習(xí)之常用的視圖組件的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • javascript刪除字符串最后一個字符

    javascript刪除字符串最后一個字符

    需求是一個字符串,想刪除這個字符串最后一個字符,比如“1,2,3,4,5,”,刪除最后一個“,”用javascript怎么實(shí)現(xiàn)?下面給出三種方法
    2014-01-01
  • 微信小程序工具函數(shù)封裝

    微信小程序工具函數(shù)封裝

    這篇文章主要為大家詳細(xì)介紹了微信小程序工具函數(shù)封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 以fetch為例詳解如何消除js異步的傳染性

    以fetch為例詳解如何消除js異步的傳染性

    這篇文章主要為大家介紹了以fetch為例詳解如何消除js異步的傳染性示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 理運(yùn)用命名空間讓js不產(chǎn)生沖突避免全局變量的泛濫

    理運(yùn)用命名空間讓js不產(chǎn)生沖突避免全局變量的泛濫

    為了避免變量之間的覆蓋與沖突,可以生成命名空間,命名空間是一種特殊的前綴,在不同的匿名函數(shù)中,根據(jù)功能聲明一個不同的命名空間
    2014-06-06
  • 詳解JavaScript中扁平與樹形數(shù)據(jù)的轉(zhuǎn)換

    詳解JavaScript中扁平與樹形數(shù)據(jù)的轉(zhuǎn)換

    這篇文章主要為大家想介紹了JavaScript中實(shí)現(xiàn)扁平與樹形數(shù)據(jù)相互轉(zhuǎn)換的方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下
    2023-01-01
  • js與css實(shí)現(xiàn)彈出層覆蓋整個頁面的方法

    js與css實(shí)現(xiàn)彈出層覆蓋整個頁面的方法

    這篇文章主要介紹了js與css實(shí)現(xiàn)彈出層覆蓋整個頁面的方法,分別以實(shí)例形式展示了彈出層覆蓋整個頁面的css樣式與js控制的實(shí)現(xiàn)技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2014-12-12

最新評論

永州市| 焦作市| 佳木斯市| 西乌珠穆沁旗| 常宁市| 武安市| 抚顺县| 扬州市| 新余市| 翼城县| 繁峙县| 清涧县| 长沙市| 剑河县| 黄平县| 万安县| 武城县| 苍梧县| 井研县| 菏泽市| 宁远县| 金山区| 溧阳市| 九龙城区| 洪泽县| 兴海县| 金塔县| 陇川县| 北碚区| 定结县| 九江县| 聊城市| 康马县| 安塞县| 中超| 依兰县| 安阳县| 榕江县| 怀柔区| 津市市| 辽中县|