Skip to content

Instantly share code, notes, and snippets.

@think49
Created October 19, 2010 20:36
Show Gist options
  • Save think49/635051 to your computer and use it in GitHub Desktop.
Save think49/635051 to your computer and use it in GitHub Desktop.
expandURI.js : ページ内の全てのa要素から短縮URLを検索し、展開したURLに変換する(制作中)
// expandURI.js
if (!Array.indexOf) {
Array.indexOf = (function (indexOf) {
return function (contextObject, elt /*, from*/) {
if (arguments.length < 3) {
indexOf.call(contextObject, elt);
} else {
indexOf.call(contextObject, elt, arguments[2]);
}
}
})(
Array.prototype.indexOf ||
function (elt /*, from*/) {
var len = this.length;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
}
);
}
(function () {
function getJsonByXHR (uri) {
}
function getJsonByJSONP (uri) {
}
function loadListener (event) {
var shortenHosts, doc, links, a, href, i, l;
shortenHosts = ['bit.ly', 'j.mp', 'tr.im', 'is.gd', 'migre.me', 'miud.in', 'udanax.org', 'URLi.nl', 'URLcorta.es', 'goo.gl', 'karmacracy.com', 'yourls.org'];
doc = event.target || this.document;
links = doc.getElementsByTagName('a');
for (i = 0, l = links.length; i < l; i++) {
a = links[i];
if (Array.indexOf(shortenHosts, a.host) !== 1) {
href = a.href;
href = getJsonByXHR(href) || getJsonByJSONP(href);
if (typeof href === 'string') {
a.href = href;
}
}
}
}
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', loadListener, false);
}
})();
/*
・os0xさん制作のAPIを利用する
・XMLHttpRequest Level 2 のクロスオリジンを利用する
参考資料
JavaScript連載第13回 - 0xFF
http://d.hatena.ne.jp/os0x/20100830/1283184297
これでできる! クロスブラウザJavaScript入門:第13回 簡単なアプリケーションの作成|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/crossbrowser-javascript/0013
simple twitter search - jsdo.it - Share JavaScript, HTML5 and CSS
http://jsdo.it/os0x/search.twitter
simple twitter search
http://ss-o.net/test/twitter-search.html
TinyurlなどのURLを復元するJSON(P) API - 0xFF
http://d.hatena.ne.jp/os0x/20090215/1234686704
gist: 65204 - GitHub
http://gist.github.com/65204
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment