テキストリンクの一部分をコピーするとき楽にするための JavaScript です。
小粋空間さんのところにて、テキストリンクの部分コピーの方法についてまとめられていました。
やりかたについては、リンクの上側をなぞるとか、以前訓練した覚えはあります。しかしながら、やりにくい場合もありますので、これを選択しやすくするための JavaScript を作ってみました。
以下のようなものを、ブラウザのコンソールで実行するか Bookmarklet 化します。
(function(){
var a = document.querySelectorAll("a"), d; for (var i=0; i<a.length; i++){
a[i].addEventListener( "mouseover", rmHref, false);
a[i].addEventListener("mouseout" ,rmSelhelper , false);
} function rmHref(){
d = this.getAttribute("href")||"";
this.setAttribute("data-selecthelper-href", d);
this.removeAttribute("href");
} function rmSelhelper(){
d = this.getAttribute("data-selecthelper-href")||"";
this.setAttribute("href" , d);
this.removeAttribute("data-selecthelper-href");
}
})();
リンクのマウスオーバーでテキストのリンクが削除(動作はdata-*に置き換えで退避)されるので選択しやすくなります。
- 対象セレクターを絞り込む場合の対応で
querySelectorAllのほうを使っています。 - 実際のハイパーリンクが動作するところまで考慮してませんので、改造するならば、なんらかの条件で
removeEventListenerを実行すればいいと思います(ページリロードしたほうが早そうだけど)。 - 元ページでほかにイベントリスナーが設定されている場合の動作まで検証してないので、あくまでも純粋なテキストリンクむけです
- あと、クロスブラウザまで考えていませんので