背景:FirefoxではShortcutKey2URLの【1】が動く|しかしそれがBraveでは動かない|Tampermonkeyを使って解決する|AutoHotkeyで簡単なキー操作でリンクコードを得る

■ShortcutKey2URL (WebExtensions) – 🦊 Firefox (ja) 向け拡張機能を入手
■Tampermonkey – 🦊 Firefox (ja) 向け拡張機能を入手
■Tampermonkey - Chrome ウェブストア

Tampermonkey Firefox

【1】そのページのリンクコードを作るブックマークレット|窓にURLが出る|オリジナル

javascript:(function(){try{var h=window.location.href,t=document.title,art=document.querySelector('article.js-entryWrapper');if(art){var title=art.getAttribute('data-unique-entry-title');if(!title){alert('No title');return;}var bn=document.querySelector('title[data-react-helmet="true"]')?.textContent||t.split(' | ')[1]||'Blog';var lt=(title+' | '+bn).normalize('NFC').replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFE00-\uFE0F\uFEFF]/g,'').replace(/[\r\n]/g,'▼');prompt('HTML','■<a href="'+h+'" target="_blank" rel="nofollow">'+lt.replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/'/g,'&apos;').replace(/</g,'&lt;').replace(/>/g,'&gt;')+'</a><br>');return;}var titleClean=t.normalize('NFC').replace(/ヨドバシ\.com - (.*?) 通販【全品無料配達】/g,'$1').replace(/ - YouTube/g,'').replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFE00-\uFE0F\uFEFF]/g,'').replace(/[\r\n]/g,'▼');var u=h;if(u.indexOf('youtube.com/watch')!==-1||u.indexOf('youtu.be/')!==-1){var vMatch=u.match(/[?&]v=([^&]+)/)||u.match(/youtu\.be\/([^?&]+)/);var tMatch=u.match(/[?&]t=([^&]+)/);var tStr='00h00m00s';if(tMatch){tStr=tMatch[1];}u='https://www.youtube.com/watch?v='+(vMatch?vMatch[1]:'')+'&t='+tStr;}else{u=u.replace(/http:\/\/localhost:1313/g,'').replace(/https:\/\/benkyosukisuki.com/g,'').replace(/https:\/\/netjuku.net/g,'').replace(/\&stick=([^&|"]+)/g,'').replace(/\&ved=([^&|"]+)/g,'').replace(/\&biw=([^&|"]+)/g,'').replace(/\&bih=([^&|"]+)/g,'').replace(/\?frm_src=thumb_module/g,'').replace(/time_continue=\d+\&/g,'');u=u.replace(/\/\/www.amazon.co.jp\/.*\/dp\/(.{10}).*/g,'//www.amazon.co.jp/dp/$1').replace(/\/\/vimeo.com\/([\w/:%#\$&\?\(\)~\.=\+\-]+)/g,'//vimeo.com/$1');}prompt('HTML','■<a href="'+u+'" target="_blank" rel="nofollow">'+titleClean.replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/'/g,'&apos;').replace(/</g,'&lt;').replace(/>/g,'&gt;')+'</a><br>');}catch(e){alert('Error: '+e.message);}})();

【2】そのページのリンクコードを作るブックマークレット|直接クリップボードにコピーする|改訂版

javascript:(async()=>{try{var h=window.location.href,t=document.title,art=document.querySelector('article.js-entryWrapper');if(art){var title=art.getAttribute('data-unique-entry-title');if(!title){alert('No title');return;}var bn=document.querySelector('title[data-react-helmet="true"]')?.textContent||t.split(%27 | %27)[1]||%27Blog%27;var lt=(title+%27 | %27+bn).normalize(%27NFC%27).replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFE00-\uFE0F\uFEFF]/g,%27%27).replace(/[\r\n]/g,%27▼%27);var htmlCode=%27■<a href="%27+h+%27" target="_blank" rel="nofollow">%27+lt.replace(/&/g,%27&amp;%27).replace(/"/g,%27&quot;%27).replace(/%27/g,%27&apos;%27).replace(/</g,%27&lt;%27).replace(/>/g,%27&gt;%27)+%27</a><br>%27;await navigator.clipboard.writeText(htmlCode);alert(%27HTMLリンクコードをクリップボードにコピーしました!%27);return;}var titleClean=t.normalize(%27NFC%27).replace(/ヨドバシ\.com - (.*?) 通販【全品無料配達】/g,%27$1%27).replace(/ - YouTube/g,%27%27).replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFE00-\uFE0F\uFEFF]/g,%27%27).replace(/[\r\n]/g,%27▼%27);var u=h;if(u.indexOf(%27youtube.com/watch%27)!==-1||u.indexOf(%27youtu.be/%27)!==-1){var vMatch=u.match(/[?&]v=([^&]+)/)||u.match(/youtu\.be\/([^?&]+)/);var tMatch=u.match(/[?&]t=([^&]+)/);var tStr=%2700h00m00s%27;if(tMatch){tStr=tMatch[1];}u=%27https://www.youtube.com/watch?v=%27+(vMatch?vMatch[1]:%27%27)+%27&t=%27+tStr;}else{u=u.replace(/http:\/\/localhost:1313/g,%27%27).replace(/https:\/\/benkyosukisuki.com/g,%27%27).replace(/https:\/\/netjuku.net/g,%27%27).replace(/\&stick=([^&|"]+)/g,%27%27).replace(/\&ved=([^&|"]+)/g,%27%27).replace(/\&biw=([^&|"]+)/g,%27%27).replace(/\&bih=([^&|"]+)/g,%27%27).replace(/\?frm_src=thumb_module/g,%27%27).replace(/time_continue=\d+\&/g,%27%27);u=u.replace(/\/\/www.amazon.co.jp\/.*\/dp\/(.{10}).*/g,%27//www.amazon.co.jp/dp/$1%27).replace(/\/\/vimeo.com\/([\w/:%#\$&\?\(\)~\.=\+\-]+)/g,%27//vimeo.com/$1%27);}var htmlCode2=%27■<a href="%27+u+%27" target="_blank" rel="nofollow">%27+titleClean.replace(/&/g,%27&amp;%27).replace(/"/g,%27&quot;%27).replace(/%27/g,%27&apos;%27).replace(/</g,%27&lt;%27).replace(/>/g,%27&gt;%27)+%27</a><br>%27;await navigator.clipboard.writeText(htmlCode2);alert(%27HTMLリンクコードをクリップボードにコピーしました!%27);}catch(e){alert(%27Error: %27+e.message);}})();

■Tampermonkey - Chrome ウェブストア
■「Tampermonkey」という拡張機能について / JavaScript | PersonWriter′s Room

そのページからリンクを得るJavaScript

TampermonkeyにJavaScript(ユーザースクリプト)を登録する基本的な手順は以下の通りです。

登録手順

  1. Tampermonkeyのアイコンをクリックする
    • ブラウザの右上にあるTampermonkeyのアイコン(黒い四角に白い猿のアイコン)をクリックします。
  2. [新規スクリプトを追加…]を選ぶ
    • メニューから[新規スクリプトを追加…]をクリックします。
  3. スクリプトを記述・編集する
    • エディタ画面が開きます。最初からテンプレート(// ==UserScript==で始まるメタデータブロックなど)が記載されているので、その中にJavaScriptコードを記述(または貼り付け)します。
    • ※どのWebサイトで実行するかを指定する@matchなどの設定を必要に応じて書き換えます。
  4. 保存する
    • メニューバーの[ファイル]から[保存]を選択するか、ショートカットキー(Ctrl + SまたはCmd + S)で保存します。これで登録が完了し、対象のページを開くと自動でスクリプトが実行されます。
// ==UserScript==
// @name         HTML Link Generator
// @namespace    http://tampermonkey.net/
// @version      1.0
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // ショートカットキー(例: Alt + C)で発動させたい場合など
    document.addEventListener('keydown', function(e) {
        if (e.altKey && e.key === 'c') { // Alt + C で実行
            try {
                var h = window.location.href, t = document.title, art = document.querySelector('article.js-entryWrapper');
                if (art) {
                    var title = art.getAttribute('data-unique-entry-title');
                    if (!title) { alert('No title'); return; }
                    var bn = document.querySelector('title[data-react-helmet="true"]')?.textContent || t.split(' | ')[1] || 'Blog';
                    var lt = (title + ' | ' + bn).normalize('NFC').replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFE00-\uFE0F\uFEFF]/g, '').replace(/[\r\n]/g, '▼');
                    prompt('HTML', '■<a href="' + h + '" target="_blank" rel="nofollow">' + lt.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&apos;').replace(/</g, '&lt;').replace(/>/g, '&gt;') + '</a><br>');
                    return;
                }
                var titleClean = t.normalize('NFC').replace(/ヨドバシ\.com - (.*?) 通販【全品無料配達】/g, '$1').replace(/ - YouTube/g, '').replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFE00-\uFE0F\uFEFF]/g, '').replace(/[\r\n]/g, '▼');
                var u = h;
                if (u.indexOf('youtube.com/watch') !== -1 || u.indexOf('youtu.be/') !== -1) {
                    var vMatch = u.match(/[?&]v=([^&]+)/) || u.match(/youtu\.be\/([^?&]+)/);
                    var tMatch = u.match(/[?&]t=([^&]+)/);
                    var tStr = '00h00m00s';
                    if (tMatch) { tStr = tMatch[1]; }
                    u = 'https://www.youtube.com/watch?v=' + (vMatch ? vMatch[1] : '') + '&t=' + tStr;
                } else {
                    u = u.replace(/http:\/\/localhost:1313/g, '').replace(/https:\/\/benkyosukisuki.com/g, '').replace(/https:\/\/netjuku.net/g, '').replace(/\&stick=([^&|"]+)/g, '').replace(/\&ved=([^&|"]+)/g, '').replace(/\&biw=([^&|"]+)/g, '').replace(/\&bih=([^&|"]+)/g, '').replace(/\?frm_src=thumb_module/g, '').replace(/time_continue=\d+\&/g, '');
                    u = u.replace(/\/\/www.amazon.co.jp\/.*\/dp\/(.{10}).*/g, '//www.amazon.co.jp/dp/$1').replace(/\/\/vimeo.com\/([\w/:%#\$&\?\(\)~\.=\+\-]+)/g, '//vimeo.com/$1');
                }
                prompt('HTML', '■<a href="' + u + '" target="_blank" rel="nofollow">' + titleClean.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&apos;').replace(/</g, '&lt;').replace(/>/g, '&gt;') + '</a><br>');
            } catch (e) {
                alert('Error: ' + e.message);
            }
        }
    });
})();
  • WindowsでAutoHotkeyを使用する場合は、‘AutoHotkey.ahk’へのショートカットをC:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupに登録しておくと、起動時にAutoHotkeyを起動して常駐させておくことができる。
  • AutoHotkeyは’AutoHotkey.ahk’というファイル名、かつ、‘UTF-8(BOM付き)’、かつ、改行コード’CR+LF’のテキストファイルとして作る(以下の文字列をそのファイルにコピペすればよい)。
  • 以下のコードでは、Windows用キーボードの[アプリケーションキー(メニューキー)]を二度押しするとBraveのTampermonkeyを介して、任意のウェブページのリンクコードがクリップボードに得られるようになる。
#Requires AutoHotkey v2.0
#UseHook	; UseHookをOnにした状態で使用

AppsKey::
{
    key := "AppsKey"
    ErrorLevel := !KeyWait(key, "T0.3")
    If (ErrorLevel) {	; 長押しした場合:MIFES
        Run('C:\Program Files\MIFES11\MIW.exe')
        KeyWait(key)
        return
    }
    
    ErrorLevel := !KeyWait(key, "D, T0.2")
    If (!ErrorLevel) {	; 2度押しした場合
        Send("!c")	; Alt+C を送信 (確実に戻すためにシンプルに記述)
        Sleep(300)	; ポップアップの表示を待つ
        
        ; クリップボードを一旦空にしてからコピーを試みる
        A_Clipboard := ""
        Send("^a")	; 全選択
        Sleep(50)
        Send("^c")	; コピー
        
        ; クリップボードにデータが入ったか少し待つ(最大0.5秒)
        if ClipWait(0.5) {
            Send("{Enter}")
        }
        
        KeyWait(key)
        return
    } else {	; 短押しした場合
        Send("^{.}")	; Ctrl+. を送信
        Sleep(300)	; 待て
        Send("GG")	; ShortcutKey2URLに登録など
        Sleep(300)	; 待て
        
        A_Clipboard := ""
        Send("^a")
        Sleep(50)
        Send("^c")
        if ClipWait(0.5) {
            Send("{Enter}")
        }
        
        KeyWait(key)
        return
    }
}
◀
 

↑