2
2

More than 1 year has passed since last update.

URLとタイトルをコピーするブックマークレット(IE非対応)

Posted at

現在のページのURLとタイトル、選択範囲テキストをコピーするブックマークレット(IE非対応)を作成。テキスト形式版は以下のような形式でコピーされる。

タイトル
URL
選択範囲テキスト

Markdown形式版は以下のような形式でコピーされる。

[タイトル](URL)
選択範囲テキスト

現在のページをコピー(テキスト形式)

javascript:(function copyToClipboard(text) {var d=document,k=d.getSelection,x=d.selection,e=window.getSelection,s=new String(e?e():(k)?k():(x?x.createRange().text:0)),a=d.title+"\n"+d.URL+(s.length?"\n"+s:"");return navigator.clipboard.writeText(a).then(function() {alert('コピーしました')}).catch(function(error) {alert((error && error.message) || 'コピーに失敗しました')})})();

改行削除前のコードは以下。

javascript:(
function copyToClipboard(text) {
  var d=document,k=d.getSelection,x=d.selection,e=window.getSelection,s=new String(e?e():(k)?k():(x?x.createRange().text:0));
  var t=d.title+"\n"+d.URL+(s.length?"\n"+s:"");
  return navigator.clipboard.writeText(t).then(function() {
    alert('コピーしました')
  }).catch(function(error) {
    alert((error && error.message) || 'コピーに失敗しました')
  })
}
)();

以下のような形式でコピーされる。

タイトル
URL
選択範囲テキスト

現在のページをコピー(Markdown形式)

javascript:(function copyToClipboard(text) {var d=document,k=d.getSelection,x=d.selection,e=window.getSelection,s=new String(e?e():(k)?k():(x?x.createRange().text:0));var t="["+d.title+"]("+d.URL+")"+(s.length?"\n"+s:"");return navigator.clipboard.writeText(t).then(function() {alert('コピーしました')}).catch(function(error) {alert((error && error.message) || 'コピーに失敗しました')})})();

改行削除前のコードは以下。

javascript:(
function copyToClipboard(text) {
  var d=document,k=d.getSelection,x=d.selection,e=window.getSelection,s=new String(e?e():(k)?k():(x?x.createRange().text:0));
  var t="["+d.title+"]("+d.URL+")"+(s.length?"\n"+s:"");
  return navigator.clipboard.writeText(t).then(function() {
    alert('コピーしました')
  }).catch(function(error) {
    alert((error && error.message) || 'コピーに失敗しました')
  })
}
)();

以下のような形式でコピーされる。

[タイトル](URL)
選択範囲テキスト

おわりに

だいぶ昔に タイトル URL - 選択範囲テキスト とか [タイトル](URL) - 選択範囲テキスト でコピーするブックマークレットを作って頻用してたけど、改行区切りにしたいなと思ってた。「JavaScript でクリップボードにテキストをコピーする (2021年版) | MSeeeeN」でIEを切り捨てればClipboard APIで改行込みテキストのコピーが簡単にできるらしいと知ったので、IE非対応で割切って作り直し。Microsoft Edgeでは使えてます(というかEdgeでしか試してないです)。選択範囲の取得は昔のブックマークレットからの転用で、これもそもそもどこかで紹介されてたコードを転用したものでした。出典を忘れてしまったけど、先人には多々感謝。

参照

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2