「新しいウインドウで開く」の代替メニュー
「右Click」➔「新しいウインドウで開く」の操作は、ブラウザのコンテキストメニューの中で最も使われるメニューかも知れません。
一方、「Edit At Once Am」は「記事一覧」で使えるのが便利ですが、記事リストの「右Click」によって専用メニューを表示するので、本来のコンテキストメニューを使い難くしてしまいます。
この問題を考えて、「Ctrl+右Click」でコンテキストメニューを通常通り表示する様にしています。 しかし、「Edit At Once Am」を使うと、すぐに「右Click」するのが癖になります。 で、メニュー以外の場所を「左Click」して「Am」のメニューを閉じて、改めてリストを「左Click」すると、これは「記事一覧」の画面の遷移になってしまいます。
もし「記事一覧」を残したい場合は、メニュー以外の場所を「左Click」して「Am」のメニューを閉じて、改めてリストを「右Click」して、コンテキストメニューを開いて「新しいウインドウで開く」という操作が必要です。
ウーム、つい「右Click」してしまう私は、とても遠回りなやりなおしに感じます。 というわけで、「新しいウインドウで開く」と同等のメニューを「Edit At Once Am」にも追加しました。
「記事一覧」だけに追加される「ブログ」ボタン
下は、新しい「ブログ」ボタンを追加した「Edit At Once Am」のメニューです。 このボタンは普通のブログページでは表示されません。(既にブログページを開いているので当たり前ですね)
「記事一覧」の記事リスト欄を選んで「右Click」すると、その記事に対する操作になります。(上図のブルーで示した範囲で「右Click」します)
◎「再編集」「リスト表示」のボタンはこれまでと同じ機能です。
◎「ブログ」ボタンは、通常は選択した記事を「別タブ」に開きます。
「開く動作」の選択とメニューの配色
● 別タブで開く
▪「Edit At Once Am」はデフォルトで「別タブ」に新しい画面を開く仕様です。
この動作の場合は「Am」メニューの色は「黒」です。
▪ ボタンにマウスポインターを乗せると、選択を示す「赤」になります。
● 現在のタブを遷移させる
▪「Am」メニューを開いた時に「Shift」キーを押すと、「現在のタブを遷移」して新しい画面を開きます。(タブを増やしたくない時に利用する操作です)
この場合は「Am」メニューの色が「グレー」になります。
▪ ボタンにマウスポインターを乗せると、選択を示す「ブルー」になります。
操作方法
「Edit At Once Am」は「記事タイトル」の右クリックがスイッチになるという事だけを覚えておけば、操作ができます。
基本的な操作方法は以下のページを参照ください。
「Edit At Once Am」の導入手順
「Edit At Once Am」は Chrome / Edge / Firefox の拡張機能「Tampermonkey」上で動作するスクリプトツールです。
なお、このツールは専用アイコンを設置する「Edit At Once」と同時に使用でき、競合はありません。
❶「Tampermonkey」を導入します
使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。 以下のページに簡単な導入の説明をしていますから参照ください。 既にこの拡張機能を導入している場合は、❶ の操作は不要です。
❷「Tampermonkey」にスクリプトを登録します
「Tampermonkey」の「+」マークの「新規スクリプト」タブを開きます。
◎「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白にした編集枠に 下のコードをコピー&ペーストします。
〔コピー方法〕 軽量シンプルなツール「PreBox Button 」を使うと
コード枠内を「Ctrl+左Click」➔「Copy code 」を「左Click」
の操作で、掲載コードのコピーが可能になります。
◎ 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。
◎ 同系統のツール「Edit At Once」と同時ONでの使用ができます。
〔 Edit At Once Am 〕 ver. 1.8
// ==UserScript== // @name Edit At Once Am // @namespace http://tampermonkey.net/ // @version 1.8 // @description Edit Entry_ID Page // @author Ameba Blog User // @match https://ameblo.jp/* // @match https://blog.ameba.jp/ucs/entry/srventry* // @exclude https://ameblo.jp/*/image* // @noframes // @grant none // ==/UserScript== main(); let target=document.querySelector('head'); let monitor=new MutationObserver(main); monitor.observe(target, { childList: true }); function main(){ let path=location.pathname; if(path.includes('/entrylist') || path.includes('/archive') || path.includes('/theme') || path.includes('/amemberentrylist')){ // 記事一覧 menu_set(); blog_archive(); } else if(path.includes('/srventrylist')){ // 記事の編集・削除 srventrylist(); } else if(path.includes('/srventryup') || path.includes('/srventryin')){ // 編集画面 editor(); } else if(document.querySelector('.js-entryWrapper')){ // ブログ画面・アメンバーブログ画面 menu_set(); blog_page(); } function menu_set(env){ let svg_e= '<svg class="eaoa_svg" viewBox="-1 -2 26 26">'+ '<path d="m19.6 9.2-4.9-4.9c-.2-.2-.2-.5 0-.7l1.8-1.8c.4-.4 1-.4 1.4 0L22.1 6c.4.4.4 '+ '1 0 1.4l-1.8 1.8c-.2.2-.5.2-.7 0zm-7-3.5-8.1 8.1L3 19.7c-.2.7.5 1.4 1.2 1.2l5.8-1.4 '+ '8.1-8.1c.2-.2.2-.5 0-.7l-4.9-4.9c-.1-.3-.5-.3-.6-.1z"></path></svg>'; let svg_l= '<svg class="eaoa_svg" viewBox="0 0 300 300">'+ '<path d="M85 41C79 42 73 46 71 52C69 56 70 61 74 62C79 63 86 62 91 62L126 '+ '62C133 62 141 61 147 64C163 73 149 97 170 103C176 104 182 103 188 103L223 '+ '103C231 103 240 101 246 107C253 114 252 124 252 133L252 189C252 195 252 '+ '202 252 208C252 211 253 214 257 214C264 213 273 204 274 197C275 189 274 '+ '179 274 171L274 119C274 109 276 97 269 88C261 79 251 80 241 80L202 80C196 '+ '80 189 81 183 80C177 78 178 70 178 65C178 57 175 49 169 44C162 39 153 40 145 '+ '40L106 40C99 40 92 39 85 41M44 81C28 85 28 101 28 114L28 214L28 237C28 243 '+ '28 248 31 253C42 267 62 263 77 263L173 263L200 263C206 263 213 263 219 '+ '261C233 256 234 245 234 232L234 159C234 149 236 135 229 127C221 119 211 '+ '119 201 119L163 119C157 119 150 120 144 119C136 116 138 106 138 100C137 94 '+ '135 89 130 85C122 79 114 80 105 80L66 80C59 80 51 79 44 81z">'+ '</path><path d="M59 104C48 107 51 123 51 132L51 209L51 228C51 231 51 234 '+ '53 237C55 239 60 239 63 239L89 239L171 239L195 239C199 239 203 240 207 '+ '238C214 235 212 224 212 218L212 165C212 159 214 150 210 145C205 141 193 '+ '143 187 143L149 143C143 143 135 144 129 143C127 142 125 141 123 140C111 '+ '130 121 117 113 107C110 103 105 103 100 103L73 103C69 103 63 102 59 104z" '+ 'style="fill:#fff"></path></svg>'; let svg_v= '<svg class="eaoa_svg" viewBox="-15 -15 230 230">'+ '<path d="M8 17C4 19 4 23 4 27C4 36 4 44 4 53L4 148L4 171C4 174 3 179 6 182C9 '+ '185 14 184 18 184L49 184L148 184L177 184C181 184 187 185 191 183C195 181 '+ '196 177 196 173C196 164 196 156 196 147L196 52L196 29C196 26 197 21 194 '+ '18C191 15 186 16 182 16L151 16L50 16L22 16C18 16 12 15 8 17z" ></path>'+ '<path d="M165 62C150 65 155 89 170 85C185 82 180 58 165 62M19 62L19 '+ '180L138 180L138 62L19 62z" style="fill:#fff;"></path></svg>'; let menu= '<div id="eao_menu">'+ '<span id="retouch">'+ svg_e +' 再編集</span>'+ '<span id="file_list">'+ svg_l +' リスト表示</span>'+ '<span id="view_page">'+ svg_v +' ブログ</span></div>'+ '<style>#eao_menu { position: absolute; z-index: 20; font: normal 14px Meiryo; '+ 'padding: 3px 10px 2px; border: 1px solid #dadce0; color: #333; background: #eceff1; '+ 'box-shadow: 4px 4px 2px -2px rgba(0, 0, 0, 0.48); cursor: default; display: none; } '+ '.eaoa_svg { width: 26px; height: 26px; vertical-align: -10px; padding: 2px; '+ 'border: 1px solid #aaa; border-radius: 4px; background: #fff; fill: #000; } '+ '#file_list, #view_page { margin-left: 12px; } '+ '#eao_menu span:hover .eaoa_svg { fill: red; } '+ '#eao_menu.c_active span .eaoa_svg { fill: #90a4ae; } '+ '#eao_menu.c_active span:hover .eaoa_svg { fill: #0069ff; }</style>'; if(!document.querySelector('#eao_menu')){ document.body.insertAdjacentHTML('beforeend', menu); }} function blog_page(){ let menu=document.querySelector('#eao_menu'); let retouch=document.querySelector('#retouch'); let file_list=document.querySelector('#file_list'); let view_page=document.querySelector('#view_page'); if(view_page){ view_page.style.display='none'; } let article=document.querySelector('.js-entryWrapper'); //記事全体 let title_h; // タイトル部 let title; // 記事タイトル let ctrl_f=0; // Ctrlキー 押下フラグ if(article){ if(article.querySelector('h1')){ title_h=article.querySelector('h1'); title=title_h.querySelector('a'); } else if(article.querySelector('h2')){ title_h=article.querySelector('h2'); title=title_h.querySelector('a'); } else if(article.querySelector('h3')){ title_h=article.querySelector('h3'); title=title_h.querySelector('a'); } if(title){ title_h.setAttribute("onContextmenu", 'return false;'); // コンテキスト非表示 title.addEventListener('contextmenu', function(e){ // 専用メニュー表示 if(ctrl_f==0){ menu.style.display="block"; menu.style.left=e.pageX+"px"; menu.style.top=e.pageY+"px"; }});}} document.addEventListener('keydown', function(event){ if(event.ctrlKey){ ctrl_f=1; if(title_h){ title_h.removeAttribute("onContextmenu", 'return false;'); }} // コンテキスト表示 if(event.shiftKey){ menu.classList.add('c_active'); }}); document.addEventListener('keyup', function(event){ ctrl_f=0; if(title_h){ title_h.setAttribute("onContextmenu", 'return false;'); } // コンテキスト非表示 menu.classList.remove('c_active'); }); document.addEventListener('click', function(event){ menu.style.display="none"; ctrl_f=0; if(title_h){ title_h.setAttribute("onContextmenu", 'return false;'); }}); // コンテキスト非表示 retouch.onclick=function(event){ event.preventDefault(); let article=document.querySelector('.js-entryWrapper'); let entry_id=article.getAttribute('data-unique-entry-id'); if(entry_id){ let path= 'https://blog.ameba.jp/ucs/entry/srventryupdateinput.do?id='+entry_id; if(!event.shiftKey){ window.open(path, "_blank"); } else{ window.location.href=path; }}} file_list.onclick=function(event){ event.preventDefault(); let article=document.querySelector('.js-entryWrapper'); let user=article.getAttribute('data-unique-ameba-id'); let entry_id=article.getAttribute('data-unique-entry-id'); let date=document.querySelector('time').getAttribute('datetime'); let entry_ym=date.slice(0, 4) + date.slice(5, 7); let path= 'https://blog.ameba.jp/ucs/entry/srventrylist.do?pageID='+ '1&entry_ym='+entry_ym+'&user='+user+'&entry_id='+entry_id; if(!event.shiftKey){ window.open(path, "_blank"); } else{ window.location.href=path; }} } // blog_page() function blog_archive(){ let menu=document.querySelector('#eao_menu'); let retouch=document.querySelector('#retouch'); let file_list=document.querySelector('#file_list'); let view_page=document.querySelector('#view_page'); if(view_page){ view_page.style.display='inline'; } let ctrl_f=0; // Ctrlキー 押下フラグ let ac_list={}; // 記事リスト let skin_type=0; // 新タイプ 2 旧タイプ 1 その他 0 let ac_search=document.querySelector('.skin-borderQuiet'); if(ac_search){ skin_type=2; ac_list=document.querySelectorAll('.skin-borderQuiet'); } // 新タイプスキン else{ ac_search=document.querySelector('.skinBorderList li'); if(ac_search){ skin_type=1; ac_list=document.querySelectorAll('.skinBorderList li'); }} // 旧タイプスキン for(let k=0; k<ac_list.length; k++){ ac_list[k].setAttribute("onContextmenu", 'return false;'); // コンテキスト非表示 ac_list[k].addEventListener('contextmenu', function(e){ // 専用メニュー表示 menu_disp(e, ac_list[k]); }); } function menu_disp(event, target){ if(ctrl_f==0){ menu.style.display="block"; menu.style.left=event.pageX+"px"; menu.style.top=event.pageY+"px"; } retouch_item(target); file_item(target); page_item(target); } document.addEventListener('keydown', function(event){ if(event.ctrlKey){ ctrl_f=1; for(let k=0; k<ac_list.length; k++){ ac_list[k].removeAttribute("onContextmenu", 'return false;'); }} // コンテキスト表示 if(event.shiftKey){ menu.classList.add('c_active'); }}); document.addEventListener('keyup', function(event){ ctrl_f=0; for(let k=0; k<ac_list.length; k++){ ac_list[k].setAttribute("onContextmenu", 'return false;'); } // コンテキスト非表示 menu.classList.remove('c_active'); }); document.addEventListener('click', function(event){ menu.style.display="none"; // 専用メニュー非表示 ctrl_f=0; for(let k=0; k<ac_list.length; k++){ ac_list[k].setAttribute("onContextmenu", 'return false;'); }}); // コンテキスト非表示 function retouch_item(target){ retouch.onclick=function(event){ event.preventDefault(); let title_link=target.querySelector('h'+ skin_type +' a'); let entry_id_a=title_link.getAttribute('href').split('entry-'); if(entry_id_a[1]){ let entry_id=entry_id_a[1].slice(0, 11); if(entry_id){ let path= 'https://blog.ameba.jp/ucs/entry/srventryupdateinput.do?id='+entry_id; if(!event.shiftKey){ window.open(path, "_blank"); } else{ window.location.href=path; }}}}} function file_item(target){ file_list.onclick=function(event){ event.preventDefault(); let user; let entry_id; let entry_ym; let date; if(skin_type==2){ date=target.querySelector('[data-uranus-component="entryItemDatetime"]').textContent; } else{ date=target.querySelector('.contentTime time').textContent; } let title_link=target.querySelector('h'+ skin_type +' a'); let user_a=title_link.getAttribute('href').split('/'); user=user_a[1]; let entry_id_a=title_link.getAttribute('href').split('entry-'); if(date && user && entry_id_a[1]){ entry_ym=date.replace(/[^0-9]/g, '').slice(0, 6); entry_id=entry_id_a[1].slice(0, 11); let path= 'https://blog.ameba.jp/ucs/entry/srventrylist.do?pageID='+ '1&entry_ym='+entry_ym+'&user='+user+'&entry_id='+entry_id; if(!event.shiftKey){ window.open(path, "_blank"); } else{ window.location.href=path; }}}} function page_item(target){ view_page.onclick=function(event){ event.preventDefault(); let title_link=target.querySelector('h'+ skin_type +' a'); if(title_link){ let path=title_link.getAttribute('href'); if(!event.shiftKey){ window.open(path, "_blank"); } else{ window.location.href=path; }}}} } // blog_archive() function srventrylist(){ let arg=new Object; let pair=location.search.substring(1).split('&'); for(let i=0; pair[i]; i++){ let key=pair[i].split('='); arg[key[0]]=key[1]; } // key[0]がkey, key[1]がvalue let entry_ym=arg.entry_ym; let pageID=parseInt( arg.pageID, 10); // 数値に変換 let user=arg.user; let entry_id=arg.entry_id; let amebaId=document.querySelector('#gHeaderRight .amebaId').textContent; let entryList_li=document.querySelectorAll('#entryList li'); if(user!=null){ if(amebaId!=user){ // 他ユーザーのブログでリスト表示を押した場合 if(history.length>1){ window.history.back(); } else{ window.close(); }} else{ let k; for(k=0; k<entryList_li.length; k++){ let entryList_a=entryList_li[k].querySelector('h2 a'); if(entryList_a){ if(entryList_a.getAttribute('href').indexOf(entry_id)!=-1){ entryList_li[k].style.outline='2px solid red'; entryList_li[k].scrollIntoView({block: "center"}); break; }}} if(k==entryList_li.length){ pageID+=1; let path= 'https://blog.ameba.jp/ucs/entry/srventrylist.do?pageID='+ pageID+'&entry_ym='+entry_ym+'&user='+user+'&entry_id='+entry_id; window.location.href=path; }}} } // srventrylist() function editor(){ if(document.querySelector('.l-form form > .error')){ // 他ユーザで再編集を押した場合 if(history.length>1){ window.history.back(); } else{ window.close(); }} } // editor() } // main()
〔追記〕2023.04
「secret.ameba.jp」のサブドメイン廃止に伴い、上記コードを修正しました。
ver. 1.7 ➔ ver. 1.8 に更新しています。
「Edit At Once Am」最新版について
旧いバージョンの JavaScriptツールは、アメーバのページ構成の変更で動作しない場合があり、導入する場合は最新バージョンをお勧めします。
●「Edit At Once Am」の最新バージョンへのリンクは、以下のページのリンクリストから探せます。