🟩 もくじ
背景: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,'&').replace(/"/g,'"').replace(/'/g,''').replace(/</g,'<').replace(/>/g,'>')+'</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,'&').replace(/"/g,'"').replace(/'/g,''').replace(/</g,'<').replace(/>/g,'>')+'</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&%27).replace(/"/g,%27"%27).replace(/%27/g,%27'%27).replace(/</g,%27<%27).replace(/>/g,%27>%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&%27).replace(/"/g,%27"%27).replace(/%27/g,%27'%27).replace(/</g,%27<%27).replace(/>/g,%27>%27)+%27</a><br>%27;await navigator.clipboard.writeText(htmlCode2);alert(%27HTMLリンクコードをクリップボードにコピーしました!%27);}catch(e){alert(%27Error: %27+e.message);}})();
HTML Link Generator|for Tampermonkey|Braveを前提にしている
■Tampermonkey - Chrome ウェブストア
■「Tampermonkey」という拡張機能について / JavaScript | PersonWriter′s Room
そのページからリンクを得るJavaScript
TampermonkeyにJavaScript(ユーザースクリプト)を登録する基本的な手順は以下の通りです。
登録手順
- Tampermonkeyのアイコンをクリックする
- ブラウザの右上にあるTampermonkeyのアイコン(黒い四角に白い猿のアイコン)をクリックします。
- [新規スクリプトを追加…]を選ぶ
- メニューから[新規スクリプトを追加…]をクリックします。
- スクリプトを記述・編集する
- エディタ画面が開きます。最初からテンプレート(// ==UserScript==で始まるメタデータブロックなど)が記載されているので、その中にJavaScriptコードを記述(または貼り付け)します。
- ※どのWebサイトで実行するかを指定する@matchなどの設定を必要に応じて書き換えます。
- 保存する
- メニューバーの[ファイル]から[保存]を選択するか、ショートカットキー(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, '&').replace(/"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>') + '</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, '&').replace(/"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>') + '</a><br>');
} catch (e) {
alert('Error: ' + e.message);
}
}
});
})();
HTML Link GeneratorをAutoHotkey 2.0で動かす
- 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
}
}