「help」ボタンを設置
「欄択範囲を指定する要領」などは、「Short Frag Link」を使いこなす上では知っていてほしい事です。 これは「help」の説明を読めばすぐ判る事ですが、知らないままだとずいぶん遠回りをする事になります。 やはり「help」へアクセスできる様にしておく方が良いと考えました。
ただ、「テストフレーム」にヘルプボタンを置くと、フレームの表示に重なり好ましくありません。 また、ボタンがフレームの隅だと判り難くいまいちです。
そこで、「 」ボタンにマウスポインターを載せた時だけ、その横に「 」ボタンを表示させる事にしました。 慣れると邪魔になるので非表示で良く、しかもなんとなくボタンがある事を知らせるのに、これは適当な配置方法でしょう。
操作マニュアル
上の「 」ボタンを押すと、下の「操作マニュアル」のページが開きます。
「Short Frag Link」を利用するには
このツールは Chrome / Edge 版の拡張機能「Tampermonkey」上で動作します。
Firefoxでこのツールはリンクを生成できますが、Firefoxは「選択箇所へのリンク」に対応していないので、生成したリンクは通常のリンクとして機能します。
以下に、このツールの導入手順を簡単に説明します。
❶「Tampermonkey」を導入します
◎ 使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。
既に「Tampermonkey」を導入している場合は、この手順 ❶ は不要です。
拡張機能の導入については、以下のページに簡単な説明があるので参照ください。
❷「Tampermonkey」にスクリプトを登録します
◎「Tampermonkey」の「+」マークの「新規スクリプト」タブを開きます。
◎「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白の編集枠に 下のコードをコピー&ペーストします。
〔コピー方法〕 右サイドバーの マークのボタンを1度押してください。
コード枠内の右クリック ➔ コード全体の選択 ➔ コピー操作 が可能になります。
◎ 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。
〔 Short Frag Link 〕 ver. 0.9
// ==UserScript== // @name Short Frag Link // @namespace http://tampermonkey.net/ // @version 0.9 // @description 選択箇所へのリンクのコンパクトなリンクを生成する // @author Ameba Blog User // @match https://*/* // @match http://*/* // @exclude https://blog.ameba.jp/ucs/* // @noframes // @grant none // ==/UserScript== let frag_link; let page_body=document.body; let help_url="https://ameblo.jp/personwritep/entry-12829625424.html"; if(page_body){ page_body.oncontextmenu=function(event){ if(event.altKey){ // 反転選択した「テキスト」を「Alt+右Click」 let selection=document.getSelection(); let select_text=selection.toString(); if(select_text){ event.preventDefault(); event.stopImmediatePropagation(); document.getSelection().removeAllRanges(); // 選択範囲をクリア let url=location.href.split('?')[0].split('#')[0]; if(url){ select_text=encodeURIComponent(select_text); // URLエンコード select_text=select_text.replace(/-/g, '%2D').replace(/'/g, '%27'); //「-」「'」置換 frag_link= url +'#:~:text='+ select_text; if(navigator.clipboard){ navigator.clipboard.writeText(frag_link); // Clipboardへコピー test(frag_link); }}} }} function test(test_url){ let x_svg= '<svg style="width: 48px; height: 48px;" viewBox="0 0 512 512">'+ '<path style="fill: #00000070;" d="M256 0C114.6 0 0 114.6 0 256c0 141.4 '+ '114.6 256 256 256C397.4 512 512 397.4 512 256C512 114.6 397.4 0 256 0z">'+ '</path><path d="M363.1 333.6l-29.6 29.6l-77.6-77.6l-77.5 '+ '77.6l-29.6-29.6l77.5-77.5l-77.5-77.5l29.6-29.6l77.5 77.5l77.6-77.5l29.6 '+ '29.6l-77.5 77.5L363.1 333.6z" style="fill: #fff;"></path></svg>'; let help_svg= '<svg width="40" height="24" viewBox="0 0 200 200">'+ '<path style="fill: #000" d="M92 14C54 19 23 44 15 82C4 135 49 '+ '192 105 186C143 181 175 156 183 118C195 64 149 7 92 14z"></path>'+ '<path style="fill: #fff" d="M63 69C70 67 76 64 82 61C92 58 116 58 110 '+ '76C103 96 81 101 81 125L112 125C112 111 123 105 132 96C141 85 1'+ '46 69 140 55C131 34 102 33 83 37C78 38 69 39 65 43C60 47 63 63 63 '+ '69M83 143L83 169L111 169L111 143L83 143z"></path></svg>'; let test_iframe= '<div class="sfl_test">'+ '<iframe class="sfl_iframe" src="'+ test_url +'"></iframe>'+ '<div class="sfl_cover">'+ '<div class="sfl_x">'+ x_svg + '<a href="'+ help_url + '" rel="noopener" target="_blank">'+ help_svg +'</a>'+ '</div>'+ '<style>'+ '.sfl_test { position: fixed; left: 0; bottom: 0; opacity: 0; '+ 'width: 100vw; height: 50vh; outline: 1px solid #fff; border-top: 8px solid #000; '+ 'background: #fff; z-index: 10000000000; } '+ '.sfl_iframe { position: relative; width: 100% !important; height: 100% !important; '+ 'border: none; z-index: 10000000000; } '+ '.sfl_cover { position: absolute; top: 0; left: 0 ; width: 100%; height: 100%; '+ 'cursor: pointer; z-index: 10000000001; } '+ '.sfl_x { position: absolute; top: 10px; left: calc(50% - 24px); opacity: 0; } '+ '.sfl_cover:hover .sfl_x { opacity: 1; } '+ '.sfl_x a { position: absolute; top: 0; left: 45px; opacity: 0; } '+ '.sfl_x:hover a { opacity: 1; } '+ '</style></div>'; if(document.querySelector('.sfl_test')){ document.querySelector('.sfl_test').remove(); } document.body.insertAdjacentHTML('beforeend', test_iframe); let sfl_test=document.querySelector('.sfl_test'); let sfl_cover=document.querySelector('.sfl_cover'); if(sfl_test && sfl_cover){ let sfl_iframe=sfl_test.querySelector('.sfl_iframe'); sfl_iframe.onload=function(){ let if_doc=sfl_iframe.contentDocument; if(if_doc){ sfl_test.style.opacity='1'; let if_html=if_doc.documentElement; let style='<style>html { scroll-behavior: unset; }</style>'; if_html.insertAdjacentHTML('beforeend', style); sfl_cover.onwheel=function(event){ event.preventDefault(); if_html.scrollBy(0, event.deltaY); }} else{ // X-Frame-Options:DENY で iframe表示が出来ない場合 sfl_test.remove(); window.open(test_url, '_blank'); }} // 別タブでリンクテスト sfl_cover.onclick=function(event){ event.stopImmediatePropagation(); sfl_test.remove(); } let sfl_help=sfl_cover.querySelector('.sfl_x a'); if(sfl_help){ sfl_help.onclick=function(event){ event.stopImmediatePropagation(); }}} } //test() }
〔2024.01.02〕
編集画面で起動しない様に以下の指定を追記しました。
@exclude https://blog.ameba.jp/ucs/*
@noframes
「Short Frag Link」最新版について
旧いバージョンの JavaScriptツールは、アメーバのページ構成の変更で動作しない場合があり、導入する場合は最新バージョンをお勧めします。
●「Short Frag Link」の最新バージョンへのリンクは、以下のページのリンクリストから探せます。