▼ 以下のページは、ブックマークレットの使い方を説明しています。 選択文字列を Twitter の投稿画面に遷移させるブックマークレット ここでは、その中で使用されているコードの説明をしています。 Web Intent URL で使用されているパラメータの開設はこちら( Twitter ドキュメント )
このブックマークレットは、殆ど var の変数定義によってなりたっていて、通常の JavaScript に整形すると以下のような単純なものとなります。
javascript: var d = document, w = window, enc = encodeURIComponent, e = w.getSelection, k = d.getSelection, x = d.selection, s = (e ? e() : (k) ? k() : (x ? x.createRange().text: 0)), s2 = ((s.toString() == '') ? s: (enc(s))), f = 'https://twitter.com/intent/tweet', l = d.location, p = '?text=' + s2 + '&url=' + enc(l), u = f + p; try { if (!/^(.*.)?tumblrzzz[^.]*$/.test(l.host)) throw (0); tstbklt(); } catch(z) { a = function() { if (!w.open(u)) l.href = u; }; if (/Firefox/.test(navigator.userAgent)) setTimeout(a, 0); else a(); } void(0)
この内容からも解りますが、元々は tumblr関連(?) の為に作られたものを転用しています。実際はこの部分を削除してもっと短くなるのですが、元々の発祥を残すためにそのまま使っています。( ライセンス等の詳細は不明です ) 変更する部分は、9行目と11行目で、9行目は遷移するページで、11行目はそのページへの QueryString となります。 選択した内容は、クロスブラウジングされていて、この方法ですと、IE11 でも問題無く動作します。選択した文字列は、通常 encodeURIComponent によって UTF-8 でエンコーディングして使用します。この場合ですと、そのページの URL もエンコーディングしています。 最後に、windows.open で開くようになっていますが、Firefox の場合はタイマーで遅延で使用し、それ以外はすぐ実行しています。 13行目と14行目は必要無い部分ですが、13行目でエラーとなり(throw される)、window.open が起動されるようになっているので、tumblrzzz という部分を変更して特定のドメインにすると、表示されているページと一致した場合に、『tstbklt』という function が本当に存在するとその function が呼ばれるようになっています。( 特定のページで任意の function をコールする事が可能になります )
|
【ブックマークレットコードの最新記事】
- ロリポップのログインブックマークレット : ユーザ専用ページ / phpMyAdmin / WordPress
- 一般的なページで IFRAME を埋め込んで Yahoo! の テレビ番組を今の時間帯より24時間表示するボタンを表示するブックマークレット
- ブックマークレット IFRAME ユニット作成ツール
- JavaScript : 通常の WEB ページにブックマークレットでアプリケーション用の IFRAME を埋め込むコード(1)
- JS : 外部ファイルを使った、ブックマークレットのスケルトン
- Twitter のタイムラインで特定ユーザを非表示にするブックマークレット
- JavaScript で埋め込むIFRAMEのコントロール