「Paste ClipB ⭐」はショートカットの関係で「Firefox」では使えません。 そのため、このツールはあえて Firefoxでは動作しない様にしています。 しかし、2024年以降で Firefoxの仕様変更で、JavaScriptによる「ペースト操作」が一部可能となっています。 このツールと同等機能が「Elements Palette」に組み込まれていますが、これはショートカットも異なるため「Firefox」でも利用可能です。 同等機能を「Firefox」で利用したい場合は、以下のツールをご利用ください。
なるべくHTML編集を避ける
前ページで、一度「HTML表示」を開くと「LinkCard Editor」がリンクカードを認識できなくなった事例を取り上げました。 問題は改善された様ですが、今回に限らず、編集画面の JavaScriptツールにとって、「通常表示」⇄「HTML表示」の往復は問題が生じ易いところです。
で、この問題のきっかけになった「Amazon ItemURL」は「HTMLコード」のペーストが必要で、この操作を「通常表示」から行える様にすれば、ひとつの改善策になるはずです。
Ameba Pickで Amazon商品を紹介する事は可能ですが、商品に関する記事としては散漫に感じます。「Amazon ItemURL」で生成したリンクカードに「LinkCard Editor」を使えば、記事内容に沿ったリンクカードが編集でき、表示を自由に触れない Ameba Pick よりも有効です。
「Fixed Format Palette」のコードを流用
「通常表示」からHTMLコードをペーストする操作は、「Fixed Format Palette」で実績があります。 このツールでは、貼り付けるデータは「HTMLコード」として保持していて、ペーストは「通常表示」の編集画面で行う仕様です。
「Amazon ItemURL」で「カード型リンク」の選択すると、クリップボードにカードの「HTMLコード」を出力します。
クリップボードの内容を「通常表示」からペーストできれば、先日の様な問題は回避でき、「HTML編集」よりも直感的な操作が可能です。「Fixed Format Palette」のコードを流用すれば、これが実現できます。
統合か独立したツールか
「Amazon ItemURL」に、このHTMLペーストを実行するコードを統合しようかと考えましたが、「HTMLペースト」の操作はリンクカードに限らないので、独立したツールとする事にしました。
ツール名は「Paste ClipB ⭐」、ツールが動作する場所はアメーバの編集画面のみで、起動強化コードを使っているので「⭐」を付けています。
「Paste ClipB ⭐」の操作と仕様
このツールを導入すると、「通常表示」の編集画面でクリップボードの内容をHTMLペーストする事が可能になります。「HTML表示」を開いて貼付け場所を探す手間を省けます。
基本操作
操作は単純です。
● 通常表示の編集枠にキャレットを入れ「Ctrl+F10」を押すと、クリップボードの内容を「HTML表示」でペーストしたのと同様の結果になります。
▪ペーストはキャレットの位置で行われます。
▪何かの文字列や要素内にキャレットがある時は、その要素外の後方にペーストします。 これは、ペーストでキャレット位置の要素が壊される事を防ぐためです。
▪「Amazon ItemURL」で「カード型リンク」のコピーをした場合は、リンクカードが生成されますが、他の表示要素のHTMLコピーもペーストできます。
例としては「YouTube動画」や「ツイッター記事」などです。
こういったサイトで「埋込みコード」をコピーした後、「通常表示」の編集画面から「Ctrl+F10」でコピーして来た内容を貼り付ける事が出来ます。
IMEのメニューが表示される場合
IMEがONになっていると、「Ctrl+F10」の押下で下の様なメニューが表示されます。
これは、環境によって異なるかも知れませんが、「漢字変換(IME)」をOFFにすれば回避できるとはいえ、いちいち手間です。
●「Ctrl+Shift+F10」または「Ctrl+Alt+F10」の押下で、このツールの起動を優先させる事が可能です。 これは、覚えておくと便利な方法で、このショートカットをデフォルトとして使うのがお勧めです。
Firefoxでは使えません
現在の Firefoxは、クリップボードの内容をペーストする際に使う「Clipboard API」に対応していません。(下の赤枠)
苦労すれば他の手法が可能かも知れませんが、複雑で困難の様です。 以下に参考文献があります。
なお、Firefoxで「Paste ClipB ⭐」をインストールして「ON」にした場合は不毛なので、このツールをOFFにする様に「アラート」を表示する様にしました。
「Paste ClipB ⭐」を利用するには
このツールは Chrome / Edge版の拡張機能「Tampermonkey」上で動作します。
残念ですが、Firefoxは JavaScript によるクリップボードのペーストに非対応です。
以下に、このツールの導入手順を簡単に説明します。
❶「Tampermonkey」を導入します
◎ 使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。
既に「Tampermonkey」を導入している場合は、この手順 ❶ は不要です。
拡張機能の導入については、以下のページに簡単な説明があるので参照ください。
❷「Tampermonkey」にスクリプトを登録します
◎「Tampermonkey」の「+」マークの「新規スクリプト」タブを開きます。
◎「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白の編集枠に 下のコードをコピー&ペーストします。
〔コピー方法〕 軽量シンプルなツール「PreBox Button 」を使うと
コード枠内を「Ctrl+左Click」➔「Copy code 」を「左Click」
の操作で、掲載コードのコピーが可能になります。
◎ 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。
〔 Paste ClipB ⭐ 〕 ver.0.1
// ==UserScript==
// @name Paste ClipB ⭐
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 編集枠(通常表示)でクリップボードのHTMLデータを記入「Ctrl+F10」
// @author Ameba Blog User
// @match https://blog.ameba.jp/ucs/entry/srventry*
// @exclude https://blog.ameba.jp/ucs/entry/srventrylist.do*
// @grant none
// ==/UserScript==
let retry=0;
let interval=setInterval(wait_target, 100);
function wait_target(){
retry++;
if(retry>10){ // リトライ制限 10回 1sec
clearInterval(interval); }
let target=document.getElementById('cke_1_contents'); // 監視 target
if(target){
clearInterval(interval);
main(); }}
function main(){
let ua=0;
let editor_iframe;
let iframe_doc;
let iframe_html;
check_firefox();
let target=document.getElementById('cke_1_contents'); // 監視 target
let monitor=new MutationObserver(catch_key);
monitor.observe(target, {childList: true}); // ショートカット待受け開始
catch_key();
function catch_key(){
if(ua==0){
editor_iframe=document.querySelector('.cke_wysiwyg_frame');
if(editor_iframe){ // iframe がある「通常表示」の場合
iframe_doc=editor_iframe.contentWindow.document;
if(iframe_doc){
iframe_doc.addEventListener("keyup", check_key); }
function check_key(event){
if(event.ctrlKey && event.keyCode==121){ //「Ctrl+F10」クリップボードを貼付
event.preventDefault();
setTimeout(()=>{
write_in(); }, 20); } } // check_key()
} //「通常表示」の場合
else{ //「HTML表示」の場合
document.addEventListener("keyup", check_key_h);
function check_key_h(event){
if(event.ctrlKey && event.keyCode==121){ // HTML表示で貼付操作をした場合
event.preventDefault();
event.stopImmediatePropagation();
setTimeout(()=>{
alert(
" ⛔ ペーストは通常編集枠で行ってください\n"+
" == Paste Clipboard =="); }, 20); } }
} //「HTML表示」の場合
}} // catch_key
function write_in(){
let selection=iframe_doc.getSelection();
let range;
if(selection && selection.rangeCount>0){
range=selection.getRangeAt(0); }
let ac_node=selection.anchorNode;
let insert_node_d=iframe_doc.createElement('div');
insert_node_d.setAttribute('id', 'p_clip');
if(ac_node && ac_node.parentNode){
// insert_node_d 生成の条件 親が div要素か BODYの場合
if(ac_node.parentNode.tagName=='DIV' ||
ac_node.parentNode.tagName=='BODY'){
ac_node.parentNode.insertBefore(insert_node_d, ac_node.nextSibling);
d_before_after(insert_node_d); }
// insert_node_d 生成の条件 ひとつ外の親が div要素か BODYの場合
else if(ac_node.parentNode.parentNode.tagName=='DIV' ||
ac_node.parentNode.parentNode.tagName=='BODY'){
ac_node.parentNode.parentNode.insertBefore(
insert_node_d, ac_node.parentNode.nextSibling);
d_before_after(insert_node_d); }}
let core=iframe_doc.querySelector('#p_clip');
if(core){
if(navigator.clipboard){
navigator.clipboard.readText()
.then(function(text){
core.outerHTML=text; }); }}
function d_before_after(insert_node_d){
if(insert_node_d==insert_node_d.parentNode.firstChild ||
insert_node_d.previousElementSibling.firstChild.tagName !='BR'){
insert_node_d.insertAdjacentHTML('beforebegin', '<p>\u00A0</p>'); }
if(insert_node_d.nextElementSibling==null ||
insert_node_d.nextElementSibling.firstChild.tagName !='BR'){
insert_node_d.insertAdjacentHTML('afterend', '<p>\u00A0</p>'); }
range.collapse(); } // 生成したdiv要素の前後に空白行追加
} // write_in()
function check_firefox(){
let agent=window.navigator.userAgent.toLowerCase();
if(agent.indexOf('firefox') > -1){
ua=1;
alert(
"⛔ Firefoxではこのツールは利用できません\n"+
" Tampermonkey のダッシュボードを開き\n"+
" 「Pasre ClipB」 をOFFにしてください。");
}} // Firefoxの場合の警告表示
} // main()
「Paste ClipB ⭐」最新版について
旧いバージョンの JavaScriptツールは、アメーバのページ構成の変更で動作しない場合があり、導入する場合は最新バージョンをお勧めします。
●「Paste ClipB ⭐」の最新バージョンへのリンクは、以下のページのリンクリストから探せます。










