Changeset 7164
- Timestamp:
- 02/26/08 17:08:50 (5 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/userscripts/googlereaderfullfeed.user.js
r7141 r7164 8 8 // @description loading full entry on Google Reader 9 9 // @privilege false 10 // @version 0.0. 610 // @version 0.0.7 11 11 // based on LDR Full Feed(http://d.hatena.ne.jp/toshi123) 12 12 // … … 29 29 'AAAAACwAAAAAEwATAAAETBDISWsNOOuNJf+aB4LiyJUZ0awNsqGB0RSYkAwhoAnKYaIEBm4EXJgC'+ 30 30 'QGFA1VBmUDwfJjjs6DQy2tJp5TBX0uf1mCO/xmYk2mxptyMAOw=='; 31 32 var ICON2 = 'data:image/gif;base64,'+ 33 'R0lGODdhEwATAPQAMUFp4YfO64fO7ofW9Yfe+LHO68XW68X3/MX3/9ne6+zn7uz/+Oz//Oz////v'+ 34 '8v///P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAA'+ 35 'EwATAAAFUCAgjmRZBmiqrqjIvqoLw/LM1unQQLyz4gECJIESHAwxgEqAUNhwAwZyBl0UnsqcNKCD'+ 36 'PKatbLGpBQeAQiJ3mwJydzxn0vZy0+1Y+s3EN4UAADs='; 31 37 32 38 // == [Config] ====================================================== … … 97 103 var text = res.responseText; 98 104 99 if(this.info.base){100 text = relativeToAbsolutePath(text, this.info.base);101 } else {102 text = relativeToAbsolutePath(text, this.itemInfo.itemURL);103 }104 105 if(REMOVE_SCRIPT) text = text.replace(/<script[^>]*>[\S\s]*?<\/script[^>]*>/g, ""); 105 106 if(REMOVE_H2TAG) text = text.replace(/<h2[^>]*>[\S\s]*?<\/h2[^>]*>/g, ""); 106 107 var htmldoc = parseHTML(text); 108 if(this.info.base && !this.itemInfo.itemURL.match(this.info.base)){ 109 relativeToAbsolutePath(htmldoc, this.info.base); 110 } else { 111 relativeToAbsolutePath(htmldoc, this.itemInfo.itemURL); 112 } 107 113 for (var i = 0;i < FullFeed.documentFilters.length; i++) { 108 114 FullFeed.documentFilters[i](htmldoc, this.itemInfo.itemURL, this.info); … … 435 441 436 442 // == [Utility] ===================================================== 437 438 function relativeToAbsolutePath (text, link){ 439 text = text.replace(/(<[^>]*img\s+[^>]*src\s*=\s*")([^"]+)(?="[^>]*>)/gi, function(match, l, src){ 440 if (/^https?:\/\//.test(src)) { 441 return l+src; 442 } else if (src[0] == "/") { 443 var link_top = link.replace(/^(https?:\/\/[^\/]+)\/.*$/, '$1'); 444 return l+link_top+src; 445 } else { 446 var link_base = link.replace(/\/[^\/]+$/, '/'); 447 return l+link_base+src; 448 } 449 }); 450 return text; 451 } 443 function relativeToAbsolutePath(htmldoc, base) { 444 var top = base.match("^https?://[^/]+")[0]; 445 var current = base.replace(/\/[^/]+$/, '/'); 446 447 Array.forEach(htmldoc.getElementsByTagName("a"), function (elm) { 448 if(elm.getAttribute("href")) elm.href = _rel2abs(elm.getAttribute("href"), top, current); 449 }); 450 Array.forEach(htmldoc.getElementsByTagName("img"), function (elm) { 451 if(elm.getAttribute("src")) elm.src = _rel2abs(elm.getAttribute("src"), top, current); 452 }); 453 } 454 455 function _rel2abs(url, top, current) { 456 if (url.match("^https?://")) { 457 return url; 458 } else if (url.match("^/")) { 459 return top + url; 460 } else { 461 return current + url; 462 } 463 } 464 452 465 453 466 function message (mes){
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)