bookmarklet
(2019年5月4日)公式のShare ブックマークレットが使えなくなったようなので、簡単に自作。
javascript:(function(){
window.open(
"https://twitter.com/intent/tweet?url=" + encodeURIComponent(location.href) + "&text=" + encodeURIComponent(document.title),
"_blank",
"width=600,height=450");
})()
TwitterShare
選択したテキストをリンク文字とタイトルにしたリンクを作る
自分がよくやる処理なので自動化したいと思いまして。(2008年9月21日)
(2009年2月17日)Operaで動かなくなったけど、opera exで充分になったので放置状態。
(2021年12月21日)また使っています。ちゃんと動いています。直接ブックマークに登録できればいいんだけど、ブラウザがそういう操作をサポートしていなくて、手で入力して登録する必要がありました。
(2021年12月22日)変数のフォーカスを小さくしました。
(2026年4月17日)モダンな感じにリファクタリングしました。
選択したテキストをリンク文字とタイトルにしたリンクを作る
javascript:(function(d) {
var b = (d.getSelection ? d.getSelection().toString() : (d.selection ? d.selection.createRange().text : ''));
if (b === '') b = d.title;
if (b === '') b = prompt('リンクのタイトル', '');
if (b !== null) {
var url = encodeURI(d.location.href);
var html = '<a href="' + url + '" title="' + b + '">' + b + '</a>';
/* クリップボードへの書き込み実行 */
if (navigator.clipboard) {
navigator.clipboard.writeText(html).then(function() {
/* コピー成功時にコンソール等で確認したければここに処理 */
}).catch(function(err) {
console.error('Copy failed', err);
});
}
/* 念のため確認用ウィンドウも開く(従来通り) */
var w = open('', 'w' + Date.now(), 'width=400,height=400');
w.document.write('<html><body><p>Copied to clipboard!</p>' + html + '<br/><center><form name="f"><textarea rows="13" cols="40" name="t">' + html + '</textarea></form></center></body></html>');
w.document.f.t.focus();
w.document.f.t.select();
}
})(document);
ソースの方は適宜改行を入れています。
あと、厳密にはフレームだった場合の選択文字列とかブラウザ間の差異なども吸収する必要があります。とりあえず自分としてはVivaldiで動けばいいやって感じの検証しかしていません。
CreateBlockquote
blockquote版
(2026年4月17日)改行を段落に変換するようにしました。
javascript:(function(d) {
var b = (d.getSelection ? d.getSelection().toString() : (d.selection ? d.selection.createRange().text : ''));
if (b === '') b = d.title;
if (b === '') b = prompt('引用文', '');
if (b !== null) {
var ls = b.split(/\r\n|\r|\n/);
var pc = '';
if (ls.length > 1) {
for (var i = 0; i < ls.length; i++) {
if (ls[i].trim() !== '') {
pc += '<p>' + ls[i].trim() + '</p>\r\n';
}
}
} else {
pc = ls[0].trim();
}
var h = '<blockquote cite="' + encodeURI(d.location.href) + '">\r\n' + pc + '</blockquote>';
var w = open('', 'w' + Date.now(), 'width=400,height=450');
w.document.write(
'<html><body>' +
h +
'<hr>' +
'<textarea id="t" rows="13" cols="40" style="width:100%;">' + h + '</textarea>' +
'<br>' +
'<button style="width:100%;" onclick="navigator.clipboard.writeText(document.getElementById(\'t\').value);alert(\'コピーしました\');">' +
'クリップボードにコピー' +
'</button>' +
'</body></html>'
);
var t = w.document.getElementById('t');
t.focus();
t.select();
}
})(document);
1行版
javascript:(function(d)%7Bvar%20b=(d.getSelection?d.getSelection().toString():(d.selection?d.selection.createRange().text:''));if(b==='')b=d.title;ifjavascript:(function(d){var b=(d.getSelection?d.getSelection().toString():(d.selection?d.selection.createRange().text:''));if(b==='')b=d.title;if(b==='')b=prompt('引用文','');if(b!==null){var ls=b.split(/\r\n|\r|\n/),pc='';if(ls.length>1){for(var i=0;i<ls.length;i++){if(ls[i].trim()!=='')pc+='<p>'+ls[i].trim()+'</p>\r\n';}}else{pc=ls[0].trim();}var h='<blockquote cite="'+encodeURI(d.location.href)+'">\r\n'+pc+'</blockquote>';var w=open('','w'+Date.now(),'width=400,height=450');w.document.write('<html><body>'+h+'<hr><textarea id="t" rows="13" cols="40" style="width:100%;">'+h+'</textarea><br><button style="width:100%;" onclick="navigator.clipboard.writeText(document.getElementById(\'t\').value);">クリップボードにコピー</button></body></html>');var t=w.document.getElementById('t');t.focus();t.select();}})(document)
オートコンプリート有効化
javascript:(function(d){
d.querySelectorAll('[autocomplete="off"]').forEach(function(e){
e.autocomplete='on';
})
})(document);