10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Qiitaの記事タイトルとURLを楽にコピーするブックマークレット作ってみた

Last updated at Posted at 2015-09-09

Qiitaの記事を知人、友人に紹介する時がありますよね?
そんな時twitterなどではなくメールで送信する際に使えるかと思い、作成しました。

実行すると小さなテキストエリア付きウィンドウが出てきて、テキストエリアをクリックすると全選択できます。
右側に削除ボタンがあるのでウィンドウはそこをクリックし削除してください。

即時関数の中なのでtextNodeを使わず、innerHTMLを使っていたり、
内部で作成したelementに対してイベントリスナー等を使わずにそのままイベントをつけていたりします。
以下のコードをブックマークする事で使用できます。

javascript:void (function (document){
  var _url=location.href;
  
  if(_url.split("/")[4]!="items"){return;}
  
  _url=_url.split("?")[0] || _url;
  var _title=document.getElementsByTagName("h1")[0].innerHTML;
  var _body=document.body || document.getElementsByTagName("body")[0];
  var _window=document.createElement("div");
  _window.setAttribute("style","z-index: 9999;position: fixed;top: 0px;bottom: 0px;left: 0px;right: 0px;width: 50%;height: 50%;margin: auto;padding: 1%;border-radius: 5px;background: #666;");
  var _closeButton=document.createElement("div");
  _closeButton.setAttribute("style","z-index: 9999;position: absolute;width: 5%;height: 100%;top: 0px;right: 0px;background: #f93;text-align: center;border-radius: 5px;font-size: 150%;cursor: pointer;");
  _closeButton.onclick=function (){
    var _parent=this.parentNode;
    _body.removeChild(_parent);
  };
  _closeButton.onmouseover=function (){
    this.style.backgroundColor="#fa6";
    this.style.color="#666";
  };
  _closeButton.onmouseout=function (){
    this.style.backgroundColor="#f93";
    this.style.color="#000";
  };
  var _closeButtonIcon=document.createElement("p");
  _closeButtonIcon.setAttribute("style","position: absolute;top: 0px;bottom: 0px;left: 0px;right: 0px;height: 1em;width: 1em;margin: auto;padding: 0;font-weight: bold;user-select: none;");
  _closeButtonIcon.innerHTML="×";
  _closeButton.appendChild(_closeButtonIcon);
  var _textArea=document.createElement("textarea");
  _textArea.innerHTML=_title+"\r\n"+_url;
  _textArea.setAttribute("style","width: 95%;height: 100%;padding: 1%;text-align: center;border-radius: 5px;border: none;resize: none;");
  _textArea.onfocus=function (){
    this.select();
  };
  _window.appendChild(_textArea);
  _window.appendChild(_closeButton);
  _body.appendChild(_window);
}(document));

思いついてガリガリ書いたものの使うことあるのだろうか……?

追記:
GreaseMonkeyスクリプトにもしてみた
Qiitaの記事タイトルとURLを楽にコピーするブックマークレットをGreaseMonkeyスクリプトにしてみた

更に追記:
マークダウン記法のコピーとEscキーで閉じる機能が追加されました
Qiitaの記事タイトルとURLを楽にコピーするブックマークレットを改良してみた

10
10
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
10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?