Twitter公式ブックマークレットなんてのがあるのを知らなかったのでいじくってみた。
Twitter公式ブックマークレットはこちらでGETだ!
やることはブックマークレットを使ったらテキストエリアに「現在のページのタイトル」と「短縮URL」が表示されるんですが、この中のタイトルをいじくろうという試みです。
まず、GETしてきたコードはこちら
javascript:(function(){window.twttr=window.twttr||{};var D=550,A=450,C=screen.height,B=screen.width,H=Math.round((B/2)-(D/2)),G=0,F=document,E;if(C>A){G=Math.round((C/2)-(A/2))}window.twttr.shareWin=window.open('http://twitter.com/share','','left='+H+',top='+G+',width='+D+',height='+A+',personalbar=0,toolbar=0,scrollbars=1,resizable=1');E=F.createElement('script');E.src='http://platform.twitter.com/bookmarklets/share.js?v=1';F.getElementsByTagName('head')[0].appendChild(E)}());
こんなの見てもわからねぇ!!ってなりますよね。私もそうなのでご心配なさらずに。
で、どんなとこいじるかの前にどう仕込んでるのかを説明します。
そんな説明イラネって方は飛ばしちゃってくだちぃ。
まずこのコードの中のhttp://platform〜に着目。
これ.jsまでの部分に飛ぶとJavaScriptのコードが読めるので読んじゃいます。
(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.twttr.shareWin,A="http://twitter.com/share?"+D;if(null===E){window.location.href=A}else{if(E&&E.open){E.location.href=A;E.focus()}}}());
素晴らしく意味が分かりませんね。
けど今やりたいのはテキストエリアに書きこむものを調べることなのでtextで検索すると
var K={text:decodeURIComponent(document.title),url:(I()||location.href),_:((new Date()).getTime())}
ってコードが見つかります。
簡単に言うとKの変数を連想配列にして色々と入れ込んでるって感じなんですが、ここのテキスト部分に干渉したいと思います。
さて、ここからがいじくり方。
まず、最初に提示したコードのE.srcの直前に
document.title="入れたい好きな文字"+document.title;
をいれちゃってください。
タイトルそのものを変えたい時は
document.title="入れたい好きな文字";
注意点としては元のページのdocument.title部分にも影響与えちゃうのでご注意を。
こういった既存の情報あるかなと思ったら無かったのでやっつけ仕事でやってみた、今では後悔している。
Twitterの神々 新聞・テレビの時代は終わった (現代ビジネスブック)
posted with amazlet at 11.02.21
田原 総一朗
講談社
売り上げランキング: 16087
講談社
売り上げランキング: 16087