urlとhogeの間はタブ送り(それが不可であればスペース)で間隔を空け、1行ずつ表示したいと考えております。
これでどうでしょうか
javascript: (function () { var d = document; var s = d.createElement('script'); s.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js'; d.body.appendChild(s)})();jQuery(function () { var out = ''; jQuery("a", this).each(function () { out += $(this).attr("href") + "\t" + $(this).text() + '\n'; }); document.write('<textarea cols=\'100\' rows=\'100\' selected=\'selected\'>' + out + '</textarea>'); $('textarea').select();});
こんな感じで、あってますか?
javascript: (function () { var d = document; var s = d.createElement('script'); s.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'; d.body.appendChild(s); $(function () { var out = ''; ("A").each(function() { var url = $(this).attr("href"); var txt = $(this).text(); out += url + "\t" + txt + "\n"; }); var ta = d.createElement('textarea'); ta.cols = 100; ta.rows = 100; ta.innerHTML = out; d.body.appendChild(ta); ta.select(); }); })();
Bookmarklet を作るとき、インデントが無いと間違いやすいので、外部スクリプトファイルに書くとデバッグやメンテが楽チンです。
外部スクリプトは、ローカルに Apache を立てておくか、Github なんかを使う。
例えば、この回答のだと、以下のようなスクリプトを http://localhost/hoge.js でアクセスできるところに置いておきます。
(function () { var d = document; var s = d.createElement('script'); s.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'; d.body.appendChild(s); $(function () { var out = ''; $("A").each(function() { var url = $(this).attr("href"); var txt = $(this).text(); out += url + "\t" + txt + "\n"; }); var ta = d.createElement('textarea'); ta.cols = 100; ta.rows = 100; ta.innerHTML = out; d.body.appendChild(ta); ta.select(); }); })();
で、Bookmarklet はこんな感じ。
javascript:(function(src){var s=document.createElement('script');s.setAttribute('type','text/javascript');s.setAttribute('charset','UTF-8');s.setAttribute('src',src);document.body.appendChild(s);})('http://localhost/hoge.js');
最後の方にある URL を書き換えるだけです。
はてなには、Hatena::Let というサービスもあります。
先に書いたようなことを、まるっとWebサービスとして提供してくれています。
javascript: (function () { var d = document; var lnks = document.getElementsByTagName("A"); var out = ''; for (var i = 0 ; i < lnks.length ; ++i) { var url = lnks[i].href; var txt = lnks[i].innerHTML; out += url + "\t" + txt + "\n"; } var ta = d.createElement('textarea'); ta.cols = 100; ta.rows = 100; ta.innerHTML = out; d.body.appendChild(ta); ta.select(); })();