亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? feed-parser.js

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁 / 共 2 頁
字號:
      aFeed.onParseError(aFeed);      return parsedItems;    }    aFeed.title = aFeed.title || this.stripTags(getNodeValue(this.childrenByTagNameNS(channel, ATOM_03_NS, "title")[0]));    aFeed.description = getNodeValue(this.childrenByTagNameNS(channel, ATOM_03_NS, "tagline")[0]);    aFeed.link = this.findAtomLink("alternate",this.childrenByTagNameNS(channel, ATOM_03_NS, "link"));    if (!aFeed.parseItems)      return parsedItems;    aFeed.invalidateItems();    var items = this.childrenByTagNameNS(channel, ATOM_03_NS, "entry");    debug("Items to parse: " + items.length);      for (var i=0; i < items.length; i++)     {      var itemNode = items[i];      var item = new FeedItem();      item.feed = aFeed;      item.characterSet = "UTF-8";      var url;      url = this.findAtomLink("alternate",this.childrenByTagNameNS(itemNode, ATOM_03_NS, "link"));      item.url = url;      item.id = getNodeValue(this.childrenByTagNameNS(itemNode, ATOM_03_NS, "id")[0]);      item.description = getNodeValue(this.childrenByTagNameNS(itemNode, ATOM_03_NS, "summary")[0]);      item.title = getNodeValue(this.childrenByTagNameNS(itemNode, ATOM_03_NS, "title")[0])                                || (item.description ? item.description.substr(0, 150) : null)                                || item.title;      var authorEl = this.childrenByTagNameNS(itemNode, ATOM_03_NS, "author")[0]                     || this.childrenByTagNameNS(itemNode, ATOM_03_NS, "contributor")[0]                     || this.childrenByTagNameNS(channel, ATOM_03_NS, "author")[0];      var author = "";      if (authorEl)       {        var name = getNodeValue(this.childrenByTagNameNS(authorEl, ATOM_03_NS, "name")[0]);        var email = getNodeValue(this.childrenByTagNameNS(authorEl, ATOM_03_NS, "email")[0]);        if (name)          author = name + (email ? " <" + email + ">" : "");        else if (email)          author = email;      }            item.author = author || item.author || aFeed.title;      item.date = getNodeValue(this.childrenByTagNameNS(itemNode, ATOM_03_NS, "modified")[0]                               || this.childrenByTagNameNS(itemNode, ATOM_03_NS, "issued")[0]                               || this.childrenByTagNameNS(itemNode, ATOM_03_NS, "created")[0])                               || item.date;      // XXX We should get the xml:base attribute from the content tag as well      // and use it as the base HREF of the message.      // XXX Atom feeds can have multiple content elements; we should differentiate      // between them and pick the best one.      // Some Atom feeds wrap the content in a CTYPE declaration; others use      // a namespace to identify the tags as HTML; and a few are buggy and put      // HTML tags in without declaring their namespace so they look like Atom.      // We deal with the first two but not the third.            var content;      var contentNode = this.childrenByTagNameNS(itemNode, ATOM_03_NS, "content")[0];      if (contentNode)       {        content = "";        for (var j=0; j < contentNode.childNodes.length; j++)         {          var node = contentNode.childNodes.item(j);          if (node.nodeType == node.CDATA_SECTION_NODE)            content += node.data;          else            content += serializer.serializeToString(node);        }              if (contentNode.getAttribute('mode') == "escaped")         {          content = content.replace(/&lt;/g, "<");          content = content.replace(/&gt;/g, ">");          content = content.replace(/&amp;/g, "&");        }              if (content == "")          content = null;      }            item.content = content;      parsedItems[i] = item;    }    return parsedItems;  },  parseAsAtomIETF: function(aFeed, aDOM)  {        var parsedItems = new Array();    // Get the first channel (assuming there is only one per Atom File).    var channel = this.childrenByTagNameNS(aDOM,ATOM_IETF_NS,"feed")[0];    if (!channel)    {      aFeed.onParseError(aFeed);      return parsedItems;    }    aFeed.title = aFeed.title || this.stripTags(this.serializeTextConstruct(this.childrenByTagNameNS(channel,ATOM_IETF_NS,"title")[0]));    aFeed.description = this.serializeTextConstruct(this.childrenByTagNameNS(channel,ATOM_IETF_NS,"subtitle")[0]);    aFeed.link = this.findAtomLink("alternate", this.childrenByTagNameNS(channel,ATOM_IETF_NS,"link"));    if (!aFeed.parseItems)      return parsedItems;    aFeed.invalidateItems();    var items = this.childrenByTagNameNS(channel,ATOM_IETF_NS,"entry");    debug("Items to parse: " + items.length);    for (var i=0; i < items.length; i++)     {      var itemNode = items[i];      var item = new FeedItem();      item.feed = aFeed;      item.characterSet = "UTF-8";      item.isStoredWithId = true;      item.url = this.findAtomLink("alternate", this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "link")) || aFeed.link;      item.id = getNodeValue(this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "id")[0]);      item.description = this.serializeTextConstruct(this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "summary")[0]);      item.title = this.stripTags(this.serializeTextConstruct(this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "title")[0])                                  || (item.description ? item.description.substr(0, 150) : null)                                  || item.title);            // XXX Support multiple authors      var source = this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "source")[0];      var authorEl = this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "author")[0]                           || (source ? this.childrenByTagNameNS(source, ATOM_IETF_NS, "author")[0] : null)                           || this.childrenByTagNameNS(channel, ATOM_IETF_NS, "author")[0];      var author = "";      if (authorEl)       {        var name = getNodeValue(this.childrenByTagNameNS(authorEl, ATOM_IETF_NS, "name")[0]);        var email = getNodeValue(this.childrenByTagNameNS(authorEl, ATOM_IETF_NS, "email")[0]);        if (name)          author = name + (email ? " <" + email + ">" : "");        else if (email)          author = email;      }            item.author = author || item.author || aFeed.title;      item.date = getNodeValue(this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "updated")[0]                               || this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "published")[0])                               || item.date;      item.content = this.serializeTextConstruct(this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "content")[0]);      if(item.content)        item.xmlContentBase = this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "content")[0].baseURI;      else if(item.description)        item.xmlContentBase = this.childrenByTagNameNS(itemNode, ATOM_IETF_NS, "summary")[0].baseURI;      else        item.xmlContentBase = itemNode.baseURI;      parsedItems[i] = item;    }    return parsedItems;  },  serializeTextConstruct: function(textElement)  {    var content = "";    if (textElement)     {      var textType = textElement.getAttribute('type');      // Atom spec says consider it "text" if not present      if(!textType)        textType = "text";      // There could be some strange content type we don't handle      if((textType != "text") && (textType != "html") && (textType != "xhtml"))        return null;      for (var j=0; j < textElement.childNodes.length; j++)       {        var node = textElement.childNodes.item(j);        if (node.nodeType == node.CDATA_SECTION_NODE)          content += this.xmlEscape(node.data);        else          content += serializer.serializeToString(node);      }      if (textType == "html")         content = this.xmlUnescape(content);    }    // other parts of the code depend on this being null    // if there's no content    return content ? content : null;  },  // finds elements that are direct children of the first arg  childrenByTagNameNS: function(aElement, aNamespace, aTagName)  {    var matches = aElement.getElementsByTagNameNS(aNamespace, aTagName);    var matchingChildren = new Array();    for (var i = 0; i < matches.length; i++)     {      if(matches[i].parentNode == aElement)        matchingChildren.push(matches[i])    }    return matchingChildren;  },  findAtomLink: function(linkRel, linkElements)  {    // XXX Need to check for MIME type and hreflang    for ( var j=0 ; j<linkElements.length ; j++ ) {      var alink = linkElements[j];      if (alink &&           //if there's a link rel          ((alink.getAttribute('rel') && alink.getAttribute('rel') == linkRel) ||           //if there isn't, assume 'alternate'           (!alink.getAttribute('rel') && (linkRel=="alternate")))           && alink.getAttribute('href'))       {        // Atom links are interpreted relative to xml:base        var ioService = Components.classes["@mozilla.org/network/io-service;1"]                                   .getService(Components.interfaces.nsIIOService);        url = ioService.newURI(alink.baseURI, null, null);        return url.resolve(alink.getAttribute('href'));      }    }    return null;  },    stripTags: function(someHTML)   {    return someHTML.replace(/<[^>]+>/g,"");  },  xmlUnescape: function(s)  {    s = s.replace(/&lt;/g, "<");    s = s.replace(/&gt;/g, ">");    s = s.replace(/&amp;/g, "&");    return s;  },  xmlEscape: function(s)  {    s = s.replace(/&/g, "&amp;");    s = s.replace(/>/g, "&gt;");    s = s.replace(/</g, "&lt;");    return s;   }};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品不卡一区| 色综合一区二区三区| 香蕉成人伊视频在线观看| 国产精品麻豆一区二区| 欧美国产97人人爽人人喊| 欧美成人三级电影在线| 日韩一区二区三区观看| 69堂亚洲精品首页| 欧美一级片在线看| 日韩亚洲欧美综合| 日韩欧美色综合网站| 精品美女一区二区| 国产欧美一区二区精品婷婷| 国产欧美日韩一区二区三区在线观看| 精品毛片乱码1区2区3区| 久久精品亚洲国产奇米99| 中文字幕不卡的av| 亚洲三级小视频| 亚洲成人tv网| 国产专区综合网| 丁香另类激情小说| 色吊一区二区三区| 欧美日本乱大交xxxxx| 欧美v日韩v国产v| 亚洲国产精品国自产拍av| 亚洲视频1区2区| 日韩国产一区二| 国产一区福利在线| 色综合久久综合网97色综合 | 亚洲午夜激情网站| 蜜桃视频第一区免费观看| 国产精品一区专区| www.激情成人| 91精品福利在线一区二区三区| 精品国产乱码久久久久久图片| 国产精品国产三级国产三级人妇 | 欧美一区二区视频在线观看2020| 精品国产一二三| 亚洲人成影院在线观看| 精品处破学生在线二十三| 国产乱妇无码大片在线观看| 国产女同互慰高潮91漫画| 亚洲男人都懂的| 青青青伊人色综合久久| 国产福利一区二区三区视频| 在线观看91视频| 日本一区二区成人| 国产在线精品免费av| jiyouzz国产精品久久| 91精品国产手机| 亚洲色图一区二区| 国产呦精品一区二区三区网站| av电影在线观看不卡| 日韩一区二区三区在线观看| 一区二区三区产品免费精品久久75| 免费三级欧美电影| 色天使久久综合网天天| 国产欧美一区二区三区沐欲| 图片区日韩欧美亚洲| 一本色道久久综合狠狠躁的推荐| 26uuu色噜噜精品一区二区| 婷婷成人激情在线网| 99视频超级精品| 久久久久久97三级| 精品一区二区三区免费观看| 欧美亚州韩日在线看免费版国语版| 国产午夜亚洲精品理论片色戒| 日本成人在线看| 日本黄色一区二区| 亚洲日本va午夜在线影院| 成人免费视频播放| 国产天堂亚洲国产碰碰| 久久成人免费网| 日韩精品在线网站| 九九热在线视频观看这里只有精品| 欧美制服丝袜第一页| 亚洲欧美乱综合| 色成年激情久久综合| 亚洲精品v日韩精品| 色8久久精品久久久久久蜜| 亚洲欧美日韩在线播放| 99精品视频一区二区| 一区精品在线播放| 91视频你懂的| 一区二区三区欧美日韩| 欧美最猛性xxxxx直播| 污片在线观看一区二区 | 中文字幕亚洲不卡| 成人精品国产免费网站| 国产精品国产三级国产a| 91亚洲精品乱码久久久久久蜜桃 | 国产欧美日韩综合| 成人精品在线视频观看| 国产精品入口麻豆原神| 97国产一区二区| 亚洲一区二区不卡免费| 欧美中文字幕不卡| 免费观看在线色综合| 欧美成人bangbros| 国产91精品精华液一区二区三区| 欧美激情一区二区三区不卡| av亚洲精华国产精华精| 一区二区三区精密机械公司| 7777精品伊人久久久大香线蕉完整版 | 91官网在线观看| 水蜜桃久久夜色精品一区的特点| 91精品国产综合久久国产大片| 精品一区免费av| 国产精品拍天天在线| 欧美性受xxxx黑人xyx| 依依成人精品视频| 欧美日韩三级视频| 国产露脸91国语对白| 亚洲欧美自拍偷拍| 欧美一区二区三区系列电影| 成人免费av资源| 午夜精品久久久久久久久久| 国产视频一区在线观看 | 午夜精品爽啪视频| 久久久久99精品一区| 色婷婷av久久久久久久| 精品一区二区精品| 香蕉久久夜色精品国产使用方法| 久久精品一区二区三区不卡| 欧美亚洲一区三区| 国产91对白在线观看九色| 奇米四色…亚洲| 亚洲一区二区综合| 国产精品无遮挡| 久久久久九九视频| 91麻豆精品国产91久久久久久久久| 精品亚洲aⅴ乱码一区二区三区| 中文字幕不卡在线| 国产视频亚洲色图| 日韩免费在线观看| 欧美日韩一区二区三区高清| 日本不卡123| 日韩有码一区二区三区| 久久婷婷色综合| 美女爽到高潮91| 亚洲国产成人精品视频| 久久伊99综合婷婷久久伊| 91蝌蚪国产九色| 国产亚洲1区2区3区| 精品捆绑美女sm三区| 色偷偷88欧美精品久久久| 日本vs亚洲vs韩国一区三区二区| 国产精品国产a| 国产精品成人免费在线| 日韩一卡二卡三卡国产欧美| aaa欧美大片| 久久99九九99精品| 国产一区二区导航在线播放| 夜夜精品浪潮av一区二区三区| 欧美一级搡bbbb搡bbbb| 色婷婷亚洲一区二区三区| 99视频精品在线| 国产在线精品一区二区不卡了| 亚洲一区二区三区三| 精品国产一区二区三区av性色| 日韩一区二区高清| 色先锋aa成人| 成人污视频在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美在线制服丝袜| 免费高清在线视频一区·| 欧美一区二区在线不卡| 日韩精品一区二区三区视频| www.久久精品| 成人性生交大片| 中文字幕日韩av资源站| 亚洲免费伊人电影| 久久久久久免费网| 91精品国产综合久久久久久漫画| 韩国在线一区二区| 国产福利精品一区二区| 日韩综合小视频| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| eeuss鲁片一区二区三区在线观看| 99re在线视频这里只有精品| 国产精品一线二线三线精华| 九九久久精品视频| 国产精品夜夜嗨| 在线看国产日韩| 国产天堂亚洲国产碰碰| 26uuu另类欧美| va亚洲va日韩不卡在线观看| 在线不卡a资源高清| 欧美一区二区不卡视频| 69成人精品免费视频| 国产精品久久午夜| 国产精品视频麻豆| 亚洲精品免费电影| 精品少妇一区二区三区在线播放| 欧美一级免费大片| 7777精品伊人久久久大香线蕉完整版 | 欧美成人r级一区二区三区| 日韩精品一区二区三区四区视频| 精品国产乱码久久久久久浪潮| 91麻豆精品国产91久久久久久 |