Share on Twitter
by
efcl
2010-08-21 [2010/08/21 17:59:12]
my bookmarklet
@@ -17,9 +17,11 @@
}
return M
}
+
function G(J) {
return encodeURIComponent(J).replace(/\+/g, "%2B")
}
+
function C(L) {
var K = [],
J;
@@ -30,6 +32,7 @@
}
return K.sort().join("&")
}
+
function H() {
var K = document.getElementsByTagName("a"),
Q = document.getElementsByTagName("link"),
@@ -47,6 +50,7 @@
}
}
}
+
function F(K) {
var J;
if (K.match(/^https?:\/\//)) {
@@ -59,6 +63,7 @@
return [location.protocol, "//", J, K].join("")
}
}
+
function I() {
var J = document.getElementsByTagName("link");
for (var K = 0, L;
@@ -71,7 +76,7 @@
}
var D = (function () {
var K = {
- text: '"'+decodeURIComponent(document.title)+'"',
+ text: '"' + decodeURIComponent(document.title) + '"',
url: (I() || location.href),
_: ((new Date()).getTime())
};
@@ -81,12 +86,10 @@
}
return C(K)
}());
- var E = window.twttr.shareWin,
- A = "http://twitter.com/share?" + D;
+ var E=window,A = "http://twitter.com/share?" + D;
if (E && E.open) {
- E.location.href = A;
- E.focus()
+ location.href = A;
} else {
window.location.href = A
}
-})();
+}());
/*
* @title Share on Twitter
* @description my bookmarklet
* @include *
* @license MIT License
* @require
*/
// タイトルを""で囲むように変更
// http://dev.twitter.com/pages/share_bookmarklet
(function () {
function B(L) {
var M = [],
K = 0,
J = L.length;
for (; K < J; K++) {
M.push(L[K])
}
return M
}
function G(J) {
return encodeURIComponent(J).replace(/\+/g, "%2B")
}
function C(L) {
var K = [],
J;
for (J in L) {
if (L[J] !== null && typeof L[J] !== "undefined") {
K.push(G(J) + "=" + G(L[J]))
}
}
return K.sort().join("&")
}
function H() {
var K = document.getElementsByTagName("a"),
Q = document.getElementsByTagName("link"),
J = /\bme\b/,
M = /^https?\:\/\/(www\.)?twitter.com\/([a-zA-Z0-9_]+)$/,
P = B(K).concat(B(Q)),
O, S, L, N = 0,
R;
for (;
(R = P[N]); N++) {
S = R.getAttribute("rel");
L = R.getAttribute("href");
if (S && L && S.match(J) && (O = L.match(M))) {
return O[2]
}
}
}
function F(K) {
var J;
if (K.match(/^https?:\/\//)) {
return K
} else {
J = location.host;
if (location.port.length > 0) {
J += ":" + location.port
}
return [location.protocol, "//", J, K].join("")
}
}
function I() {
var J = document.getElementsByTagName("link");
for (var K = 0, L;
(L = J[K]); K++) {
if (L.getAttribute("rel") == "canonical") {
return F(L.getAttribute("href"))
}
}
return null
}
var D = (function () {
var K = {
text: '"' + decodeURIComponent(document.title) + '"',
url: (I() || location.href),
_: ((new Date()).getTime())
};
var J = H();
if (J) {
K.via = J
}
return C(K)
}());
var E=window,A = "http://twitter.com/share?" + D;
if (E && E.open) {
location.href = A;
} else {
window.location.href = A
}
}());
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。