Firefoxのデザイン崩れに修復対応しました

Firefoxの「全角空白が関係する改行」に対応したデザイン修正を行いました。 改善点の詳細は、前ページを参照ください。

 

 

 

「Tampermonkey」のみで使える「With CSS版」

「Comment C-O With CSS」は「Ameblo Management」のアレンジが不要です。 他は「Comment C-O」と全く同様に扱えます。

 

操作方法の詳細は以下の「操作マニュアル」を参照ください。

 

 

 

 

「Comment C-O With CSS」を利用するには 

「Comment C-O With CSS」は Chrome / Edge / Firefox の各ブラウザ版の拡張機能「Tampermonkey」上で動作します。

 

❶「Tampermonkey」を導入します

◎ 使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。

既に「Tampermonkey」を導入している場合は、この手順 ❶ は不要です。

拡張機能の導入については、以下のページに簡単な説明があるので参照ください。

 

 

❷「Tampermonkey」にスクリプトを登録します

◎「Tampermonkey」の「」マークの「新規スクリプト」タブを開きます。

 

 

 

◎「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白の編集枠に 下のコードをコピー&ペーストします。

 

〔コピー方法〕 軽量シンプルなツール「PreBox Button   」を使うと

  コード枠内を「Ctrl+左Click」➔「Copy code 」を「左Click」

  の操作で、掲載コードのコピーが可能になります。

 

◎ 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。

 

 

〔 Comment C-O With CSS 〕 ver. 1.7

 

// ==UserScript==
// @name         Comment C-O With CSS
// @namespace    http://tampermonkey.net/
// @version      1.7
// @description  コメント管理画面のリスト開閉機能
// @author       Ameba Blog User
// @match        https://blog.ameba.jp/ucs/comment/comment*
// @noframes
// @run-at        document-start
// @grant        none
// ==/UserScript==

let save_t;
let mode_key;
let emode_key;

let ua=0; // Chromeの場合のフラグ
let agent=window.navigator.userAgent.toLowerCase();
if(agent.indexOf('firefox') > -1){ ua=1; } // Firefoxの場合のフラグ


let path=document.location.pathname;
if(path.match(/commentlist/)){ // コメント管理画面で動作

    let retry=0;
    let interval=setInterval(wait_target, 1);
    function wait_target(){
        retry++;
        if(retry>100){ // リトライ制限 100回 0.1secまで
            clearInterval(interval); }
        let target=document.body; // 監視 target
        if(target){
            clearInterval(interval);
            environ();
            page_design(); }}


    function environ(){
        let style=
            '<style id="co_list">'+
            '.userList__item { position: relative; } '+
            '.userList__item:focus { outline: 2px solid #2196f3; } '+
            '.userList__text { display: none; max-height: 75vh; } '+
            '.userList__information { top: 42px; right: 330px; } '+
            '.userList__buttons { top: 38px; right: 76px; } '+
            '.co_view { width: 26px; height: 26px; margin-left: 16px; color: #888; '+
            'font: 16px/27px Meiryo; padding: 0; border: 1px solid #aaa; '+
            'border-radius: 4px; background: #fff; cursor: pointer; } '+
            '.co_view:active { box-shadow: 0 0 0 1px #fff, 0 0 0 3px #0091ff; } '+
            '.co_menu { '+
            'background: linear-gradient(#26c6da 0%, #009688 70%) !important; } '+
            '.co_menu:hover { '+
            'background: linear-gradient(#009688 0%, #26c6da 100%) !important; } '+
            '.co_menu svg { fill: #fff; } '+
            '.userList__menu:active , .commentReply__headerCancel:active { '+
            'box-shadow: 0 0 0 1px #fff, 0 0 0 3px #0091ff; } '+
            '.commentReply__headerCancel { cursor: pointer; } '+
            '.userList__tooltip { z-index: 1; top: -120px; right: 0 !important; } '+
            '.item_close { position: absolute; margin: 0 !important; } '+
            '#mold, #mnew { position: absolute; width: 29px; height: 29px; '+
            'cursor: pointer; font: normal 16px/28px Meiryo; '+
            'border: 1px solid #aaa; border-radius: 4px; background: #fff; } '+
            '#mold { right: 24.5rem; } #mnew { right: 10rem; } '+
            '#mold:active, #mnew:active, .navigation__filter:active, '+
            '.navigation__setting:active { box-shadow: 0 0 0 1px #fff, 0 0 0 3px #0091ff; } '+
            '#c_overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; '+
            'background: rgb(0, 28, 25, .8); display: none; } '+
            '.efmode { position: fixed; top: 60px; width: 706px; z-index: 1999; } '+
            '.efmode_w { position: fixed; top: 60px; width: 706px; z-index: 1999; '+
            'box-shadow: -1px -1px 0 0 #ddd, 0 0 0 1px #aaa; } '+
            '.userList__item, .userList__information { background: '+
            get_cookie('item_color_set') +
            ' !important; }</style>';

        if(!document.querySelector('#co_list')){
            document.documentElement.insertAdjacentHTML('beforeend', style); }

    } // environ()



    function page_design(){
        let style=
            '<style id="co_list_add">'+
            ':focus { outline: none; } '+
            '#ucsContent { background: #fafafa; } '+
            '#ucsMain { display: flex; flex-direction: column; background: #fafafa; } '+
            '#ucsMainLeft { position: relative; width: 740px; margin: 15px auto 0; } '+
            '#ucsMainLeft .commentList { padding: 0 0 1rem; } '+
            '#ucsMainLeft h1 { margin: 0 -32px 20px; padding: 0 32px 6px; } '+
            '.tabs { overflow: hidden; } '+
            '.tabs__item { background: #fff; } '+
            '.tabs__link { font-size: 16px; font-weight: bold; padding: 3px 0 0; } '+
            '.commentList .tabs__item.is-active { background: #2196f3; } '+
            '.navigation { position: absolute; top: 32px; left: 360px; width: 360px; border: none; } '+
            '.navigation__filter { border: 1px solid #aaa; padding: 5.5px; border-radius: 4px; '+
            'background: #fff; cursor: pointer; } '+
            '.navigation__description { font-size: 18px; font-weight: bold; padding-top: 2px; } '+
            '.navigation__setting { border: 1px solid #aaa; padding: 4px 10px; border-radius: 4px; '+
            'background: #fff; } '+
            '.navigation__settingText { font-size: 16px; padding: 3px 0 0; } '+
            '.commentList__inner { margin: 1.5rem 0 0; } '+
            '.userList__item { padding: 6px 16px 2px; border: 1px solid #d4d5d6 !important; '+
            'background: #d8e1e5; } '+
            '.userList__item + .userList__item { padding: 6px 16px 2px; margin-top: .5rem; } '+
            '.userList__item.is-open { padding: 12px 16px; margin: 1.5rem 0; } '+
            '#ucsMainLeft .userList__title { font-size: 16px; margin: 0; } '+
            '#ucsMainLeft .userList__titleCaption { font-size: 14px; font-weight: normal; '+
            'min-width: 7.2rem; } '+
            '.userList__title + .userList__inner { margin: 0; } '+
            '.userList__item.is-open .userList__inner { margin: 6px 0; } '+
            '.commentList .userList__thumbnail { width: 29px; height: 29px; border-radius: 4px; } '+
            '.userList__nameLink { vertical-align: -2px; color: #000; } '+
            '.userList__menu { margin: 2px 1rem 0 0; padding: 2px; border: 1px solid #aaa; '+
            'border-radius: 4px; background: #fff; } '+
            '.userList__menu svg { width: 20px; height: 20px; } '+
            '.userList__text { font-size: 1rem; margin: 0.3rem 1rem 0; padding: .5em 16px; '+
            'border: 1px solid #aaa; border-radius: 4px; background: #fefefe; '+
            'min-height: 2.7rem; height: 2.7rem; overflow-y: scroll; resize: vertical; } '+
            '.userList__information { top: 34px; font-size: 16px; margin: 0.7rem 1rem 0; '+
            'color: #000; background: #d8e1e5; } '+
            '.userList__buttons { top: 31px; right: 65px; margin: -1.5rem 2rem 0; } '+
            '.userList__buttonsItem { max-width: 132px; } '+
            '.userList__buttonsItem.is-neutral { color: #757575; border: 1px solid #999; } '+
            '.c-buttonContained.userList__buttonsItem.js-comment-delete { '+
            'line-height: 25px; padding: 1px 6px 0; margin: 0 0 0 50px !important; order: 1; } '+
            '.c-buttonContained.userList__buttonsItem.js-comment-delete:hover { '+
            'opacity: 1; color: #fff; background: red; border-color: #f44336; } '+
            '[data-section-id="comment_delete"] { color: red; background: #fff; '+
            'border-color: red; }'+
            '[data-section-id="comment_delete"]:hover { opacity: 1; color: #fff; '+
            'background: red; border-color: #f44336; } '+
            '[data-section-id="comment_delete"]:focus { '+
            'box-shadow: 0 0 0 2px #fff, 0 0 0 4px red; } '+
            '.c-buttonContained { font: bold 16px/27px Meiryo; padding: 1px 16px 0; '+
            'min-width: unset; width: auto; min-height: unset; height: 26px; '+
            'border-radius: 4px; background: linear-gradient(#2196f3 0%, #1976D2 70%); } '+
            '.c-buttonContained:not([disabled]):hover { '+
            'background: linear-gradient(#1976D2 0%, #2196f3 100%); } '+
            '[data-section-id=\"comment_approve\"] { '+
            'background: linear-gradient(#b0bec5 0%, #607d8b 70%); } '+
            '.commentReply { margin: -1.6rem 1rem 0; } '+
            '.commentReply__header { margin-bottom: -5px; } '+
            '.commentReply__headerLabel { margin-left: 180px; color: #000; '+
            'text-shadow: 0 0 #000; } '+
            '.commentReply__headerCancel { height: 26px; width: 26px; margin-bottom: 4px; '+
            'border: 1px solid #aaa; border-radius: 4px; background: #fff; } '+
            '.commentReply__headerCancel::after { content: \"✖\"; display: block; '+
            'font: bold 18px/27px Meiryo; color: #888; } '+
            '.commentList .formGroup__textarea { font: normal 16px Meiryo; resize: vertical; '+
            'background: #fefefe; overflow-y: scroll; } '+
            '.commentList .formGroup__textarea:focus { box-shadow: none; '+
            'border-color: #2196f3; background: #fefefe; } '+
            '.c-formTextarea { border-radius: 4px; } '+
            '.c-formTextarea:focus { outline: none; } '+
            '.commentList .sendButton { width: 160px; margin: -1.1rem auto 0; } '+
            '.pagination { margin: 2rem 0 0; } '+
            '.pagination__link { background: #fff; } '+
            '.commentModalOverlay { background: none; } '+
            '.commentModal, .commentFilterModalMiddle { '+
            'box-shadow: 0 40px 100px 0 #00000050; } '+
            '.commentModalHeader__description { font-size: 16px; color: #000; } '+
            '.commentFilterModalMiddle { display: table; height: auto; width: 300px; '+
            'margin: -270px 0 0 -150px; padding: 2.5rem 0 .5rem; border-radius: 6px; } '+
            '.commentFilterModal__title { position: absolute; top: 15px; width: 150px; } '+
            '.commentFilterModal__body { display: flex; flex-direction: row; overflow-y: auto; '+
            'max-height: unset; height: auto; margin: 0; padding: 0.5rem 16px; } '+
            '.commentFilterModal__body .is-hidden { display: block !important; } '+
            '.filterList.js-filter-list-year { width: 110px; margin-right: 20px; '+
            'background: #f8fafa; } '+
            '.filterList.js-filter-list-month { width: 180px; } '+
            '.filterList, .filterList__item { border: none !important; } '+
            '.filterList__button, .filterList__link { font-size: 1rem; padding: 8px 0 6px 1rem; } '+
            '.filterList__arrow { right: 10px; } '+
            '.filterList__description.js-filter-no-entry { width: 0; visibility: hidden; } '+
            '.filterList__item.is-checked:after { opacity: 0; } '+
            '.userList__tooltip { right: 30px; border-radius: 6px; } '+
            '.userList__tooltipItem { padding: 10px 10px; } '+
            '.commentModal { border-radius: 6px; overflow: hidden; } '+
            '.filterList__button:hover, .filterList__link:hover, .filterList__link:visited, '+
            '.userList__tooltipItem:hover { color: #000; background: #e2eef0; } '+
            '.floatingNotification { font: bold 16px Meiryo; top: 60px; bottom: unset; '+
            'margin: 0 0 0 -180px; padding: 8px 20px 6px; background: #2196f3; '+
            'box-shadow: 0 10px 20px #0000003b; z-index: 1; } '+
            '#subContentsArea { margin-bottom: 6rem; } '+
            '.commentSettingsList__link, .commentSettingsList__link:visited { '+
            'padding: 0 2rem; color: #000; text-shadow: 0 0 1px #00000050; } '+
            '.commentSettingsList__link:hover { background: #e2eef0; } '+
            '#ucsMainRight { display: none; } '+
            '.userList__text::-webkit-scrollbar, '+
            '.commentList .formGroup__textarea::-webkit-scrollbar { width: 16px; } '+
            '.userList__text::-webkit-scrollbar-corner, '+
            '.commentList .formGroup__textarea::-webkit-scrollbar-corner { '+
            'background: #00aaffd6; } '+
            '.userList__text::-webkit-scrollbar-thumb, '+
            '.commentList .formGroup__textarea::-webkit-scrollbar-thumb { '+
            'background: #ccc; border: 2px solid #eee; } '+
            '.userList__text::-webkit-scrollbar-track, '+
            '.commentList .formGroup__textarea::-webkit-scrollbar-track { '+
            'background: #eee; }</style>';

        if(!document.querySelector('#co_list_add')){
            document.documentElement.insertAdjacentHTML('beforeend', style); }

    } // page_design()



    window.addEventListener('DOMContentLoaded', function(){

        set_items();
        set_mselector();
        set_commoverlay();
        list_mode();
        mode_set();
        color_toss();


        function set_items(){
            let items=document.querySelectorAll('.userList__item');
            for(let k=0; k<items.length; k++){
                items[k].setAttribute('tabindex', '0');
                let information=items[k].querySelector('.userList__information');
                let buttons=items[k].querySelector('.userList__buttons');
                set_view(buttons);
                information.classList.add('item_close');
                buttons.classList.add('item_close'); }

            function set_view(elem){
                let view=document.createElement('button');
                view.setAttribute('type', 'button');
                view.setAttribute('class', 'co_view');
                view.textContent='▼';
                if(!elem.querySelector('.co_view')){
                    elem.appendChild(view); }}}



        function set_mselector(){
            let nav=document.querySelector('.navigation');
            let description=document.querySelector('.navigation__description');
            let mold=document.createElement('button');
            mold.setAttribute('type', 'button');
            mold.setAttribute('id', 'mold');
            mold.textContent='◁';

            if(!document.querySelector('#mold') && description){
                nav.insertBefore(mold, description); }

            let mnew=document.createElement('button');
            mnew.setAttribute('type', 'button');
            mnew.setAttribute('id', 'mnew');
            mnew.textContent='▷';

            if(!document.querySelector('#new') && description){
                nav.insertBefore(mnew, description.nextSibling); }}



        function set_commoverlay(){
            let commentlist=document.querySelector('.commentList');
            let c_overlay=document.createElement('div');
            c_overlay.setAttribute('id', 'c_overlay');
            if(!commentlist.querySelector('#c_overlay')){
                commentlist.appendChild(c_overlay); }}



        function list_mode(){
            let tab_item=document.querySelectorAll('.tabs .tabs__item');
            if(tab_item[0] && tab_item[0].classList.contains('is-active')){ // 公開済み画面
                let approved=get_cookie('approved');

                if(approved!=0){ // approved: 1:制限表示 2:全文表示
                    let items=document.querySelectorAll('.userList__item');
                    for(let k=0; k<items.length; k++){
                        let view_button=items[k].querySelector('.co_view');
                        let text=items[k].querySelector('.userList__text');
                        text.style.display='block';
                        height_g(text, approved);
                        view_button.textContent='▲'; }}
                document.cookie='approved='+approved+'; Max-Age=2592000'; }


            if(tab_item[1] && tab_item[1].classList.contains('is-active')){ // 承認待ち画面
                let pending=get_cookie('pending');
                if(pending!=0){ // pending: 1:制限表示 2:全文表示
                    let items=document.querySelectorAll('.userList__item');
                    for(let k=0; k<items.length; k++){
                        let view_button=items[k].querySelector('.co_view');
                        let text=items[k].querySelector('.userList__text');
                        text.style.display='block';
                        height_g(text, pending);
                        view_button.textContent='▲'; }}
                document.cookie='pending='+pending+'; Max-Age=2592000';

                let items=document.querySelectorAll('.userList__item');
                for(let k=0; k<items.length; k++){
                    let menu_button=items[k].querySelector('.userList__menu');
                    menu_button.classList.add('co_menu'); }}

        } // list_mode()



        function mode_set(){ // マーク保持時間・動作mode等をここで設定 🟩
            let save=get_cookie('save_time'); // マーク保持時間
            if(save==0){
                save_t=3600; }
            else if(save==1){
                save_t=21600; }
            else if(save==2){
                save_t=0; }
            document.cookie='save_time='+save+'; Max-Age=2592000';

            mode_key=get_cookie('mode_key'); // マークリセット仕様
            document.cookie='mode_key='+mode_key+'; Max-Age=2592000';

            emode_key=get_cookie('emode_key'); // 編集画面暗転表示
            document.cookie='emode_key='+emode_key+'; Max-Age=2592000'; }



        function color_toss(){
            let item_color_set=get_cookie('item_color_set'); // リストの枠色
            if(item_color_set==0){
                item_color_set='#d8e1e5'; }
            document.cookie='item_color_set='+item_color_set+'; Max-Age=2592000'; }

    }); // window.addEventListener



    window.addEventListener('load', function(){

        open_read();
        open_edit();
        close();
        text_focus();
        menu_read();
        memo();
        read_memo();
        memo_app();
        read_memo_app();
        month_select();


        function open_read(){
            let items=document.querySelectorAll('.userList__item');
            for(let k=0; k<items.length; k++){
                let view_button=items[k].querySelector('.co_view');
                if(view_button){
                    view_button.addEventListener('click', function(){
                        toggle(items[k], view_button);
                        app_reset(items[k], 0); }); }} // 🟩

            function toggle(item, sw){
                let open_limit;
                let tab_item=document.querySelectorAll('.tabs .tabs__item');
                if(tab_item[0] && tab_item[0].classList.contains('is-active')){ // 公開済み画面
                    open_limit=get_cookie('approved'); }
                else if(tab_item[1] && tab_item[1].classList.contains('is-active')){ // 承認待ち画面
                    open_limit=get_cookie('pending'); }

                let text=item.querySelector('.userList__text');
                if(sw.textContent=='▼'){
                    text.style.display='block';
                    sw.textContent='▲';
                    height_g(text, open_limit); }
                else{
                    text.style.display='none';
                    sw.textContent='▼';
                    item.focus(); }}

        } // open_read()



        function menu_read(){
            let items=document.querySelectorAll('.userList__item');
            for(let k=0; k<items.length; k++){
                let menu_button=items[k].querySelector('.userList__menu');
                menu_button.addEventListener('click', function(event){
                    if(event.ctrlKey){
                        menu_button.click();
                        app_reset(items[k], 1); }
                    else{
                        app_reset(items[k], 0); }}); }} // 🟩



        function open_edit(){
            let items=document.querySelectorAll('.userList__item');
            for(let k=0; k<items.length; k++){
                let reply_button=items[k].querySelector('.js-comment-reply-button');
                if(reply_button){
                    reply_button.addEventListener('click', function(){
                        let text=items[k].querySelector('.userList__text');
                        let information=items[k].querySelector('.userList__information');
                        let buttons=items[k].querySelector('.userList__buttons');

                        text.style.display='block';
                        information.classList.remove('item_close');
                        buttons.classList.remove('item_close');
                        height_g(text, 1);
                        app_reset(items[k], 0); // 🟩

                        items[k].scrollIntoView({block: "center"});
                        items[k].setAttribute('tabindex', '');
                        edit_overlay(items[k], 0);

                    }); }}} // open_edit()



        function close(){
            let items=document.querySelectorAll('.userList__item');
            for(let k=0; k<items.length; k++){
                let reply_cancel=items[k].querySelector('.js-comment-reply-cancel');
                if(reply_cancel){
                    reply_cancel.addEventListener('click', function(){
                        let text=items[k].querySelector('.userList__text');
                        let information=items[k].querySelector('.userList__information');
                        let buttons=items[k].querySelector('.userList__buttons');
                        text.style.display='none';
                        information.classList.add('item_close');
                        buttons.classList.add('item_close');
                        let view_button=items[k].querySelector('.co_view');
                        if(view_button.textContent=='▲'){
                            view_button.textContent='▼'; }
                        items[k].setAttribute('tabindex', '0');
                        items[k].focus();
                        edit_overlay(items[k], 1);

                    }); }}} // close()



        function text_focus(){
            let items=document.querySelectorAll('.userList__item');
            for(let k=0; k<items.length; k++){
                let text=items[k].querySelector('.userList__text');
                let resizeObserver=new ResizeObserver(recover_scroll);
                resizeObserver.observe(text);

                function recover_scroll(){
                    let textarea=items[k].querySelector('.formGroup__textarea');
                    if(textarea){
                        textarea.blur(); }}}}



        function edit_overlay(elem, open_close){
            let c_overlay=document.querySelector('#c_overlay');
            if(emode_key==1){
                if(open_close==0){
                    elem.classList.add('efmode');
                    c_overlay.style.display='block';
                    items_blur(6);
                    lock(0); }
                if(open_close==1){
                    elem.classList.remove('efmode');
                    c_overlay.style.display='none';
                    items_blur(0);
                    lock(1); }}
            if(emode_key==2){
                if(open_close==0){
                    elem.classList.add('efmode_w');
                    c_overlay.style.display='block';
                    c_overlay.style.background='rgb(246, 252, 255, .7)';
                    items_blur(6);
                    lock(0); }
                if(open_close==1){
                    elem.classList.remove('efmode_w');
                    c_overlay.style.display='none';
                    items_blur(0);
                    lock(1); }}

            function lock(n){
                let w_html=document.querySelector('html');
                let backTop=document.querySelector('#backTop');
                let globalH=document.querySelector('#globalHeader');
                let ucsH=document.querySelector('#ucsHeader');
                let sidem=document.querySelector('.l-ucs-sidemenu-area');
                if(n==0){
                    w_html.style.overflowY='hidden';
                    backTop.style.visibility='hidden';
                    globalH.style.visibility='hidden';
                    ucsH.style.visibility='hidden';
                    sidem.style.visibility='hidden'; }
                if(n==1){
                    w_html.style.overflowY='scroll';
                    backTop.style.visibility='visible';
                    globalH.style.visibility='visible';
                    ucsH.style.visibility='visible';
                    sidem.style.visibility='visible'; }}

            function items_blur(n){
                let itemsn=document.querySelectorAll(
                    '.commentList>*:nth-child(-n+3), .userList__item:not(.is-open)');
                for(let k=0; k<itemsn.length; k++){
                    itemsn[k].style.filter='blur('+n+'px)'; }
                let pagin=document.querySelector('.pagination');
                pagin.style.filter='blur('+n+'px)'; }}



        function memo(){
            let items=document.querySelectorAll('.userList__item');
            for(let k=0; k<items.length; k++){
                let sendbutton=items[k].querySelector('.commentList .sendButton');
                if(sendbutton){
                    sendbutton.addEventListener('mousedown', function(event){
                        let textarea=items[k].querySelector('#form-reply');
                        textarea.value=textarea.value.trim(); // 文末の空白行を削除

                        let comm_id=sendbutton.getAttribute('data-comment-id');
                        document.cookie='comm_id='+comm_id+'; Max-Age=40';
                        app_reset(items[k], 1); // 🟩
                    }); }}}



        function read_memo(){
            let comm_id=get_cookie('comm_id');
            let items=document.querySelectorAll('.userList__item');
            for(let k=0; k<items.length; k++){
                let sendbutton=items[k].querySelector('.commentList .sendButton');
                if(sendbutton){
                    let id=sendbutton.getAttribute('data-comment-id');
                    if(id==comm_id){
                        items[k].focus(); }}}}



        function memo_app(){
            let app_button=document.querySelectorAll('[data-section-id="comment_approve"]');
            for(let k=0; k<app_button.length; k++){
                app_button[k].addEventListener('mousedown', function(){
                    let comm_id=app_button[k].getAttribute('data-comment-id');
                    let approve_id=get_cookie('new_comm_id');
                    cookie_write(approve_id, comm_id); }); }

            function cookie_write(value0, value1){
                if(value0==0){
                    document.cookie='new_comm_id='+value1+'; Max-Age='+save_t; }
                else{
                    let arr=value0.split('%');
                    arr.push(value1);
                    let approve_id_n=arr.join('%');
                    document.cookie='new_comm_id='+approve_id_n+'; Max-Age='+save_t; }}}



        function read_memo_app(){
            let approve_id=get_cookie('new_comm_id');
            let items=document.querySelectorAll('.userList__item');
            for(let k=0; k<items.length; k++){
                let sendbutton=items[k].querySelector('.commentList .sendButton');
                if(sendbutton && approve_id!=0){
                    let id=sendbutton.getAttribute('data-comment-id');
                    if(approve_id.indexOf(id)!=-1){
                        let view_button=items[k].querySelector('.userList__menu');
                        view_button.classList.add('co_menu'); }}}}



        function app_reset(item, mode){ // 🟩
            if(mode==mode_key){
                let approve_id=get_cookie('new_comm_id');
                let menu_button=item.querySelector('.userList__menu');
                let sendbutton=item.querySelector('.commentList .sendButton');
                if(sendbutton && approve_id!=0){
                    menu_button.classList.remove('co_menu');
                    let id=sendbutton.getAttribute('data-comment-id');
                    let arr=approve_id.split('%');
                    let arr_d=arr.filter(function(value){
                        return value!=id; });
                    let approve_id_d=arr_d.join('%');
                    document.cookie='new_comm_id='+approve_id_d+'; Max-Age='+save_t; }}}



        function month_select(){
            let mold=document.querySelector('#mold');
            let mnew=document.querySelector('#mnew');
            let description=document.querySelector('.navigation__description');
            let now=description.textContent.replace(/[^0-9]/g, '');
            let now_y=Number(now.slice(0, 4));
            let now_m=Number(now.slice(4, 6));
            let y_list_button=
                document.querySelector('.js-filter-list-year .filterList__item:last-child button');

            let start_y=2004; // 取得できなかった場合のデフォルト値
            if(y_list_button){
                start_y=Number(y_list_button.textContent.replace(/[^0-9]/g, '')); }
            if(now_y==start_y && now_m==1){
                mold.style.opacity='0.2';
                mold.style.pointerEvents='none'; }
            else{
                mold.style.opacity='1';
                mold.style.pointerEvents='auto'; }

            mold.onclick=function(){
                let back;
                if(now_m>1){
                    back=now_y*100+now_m-1; }
                else{
                    back=(now_y-1)*100+12; }
                location.href='https://blog.ameba.jp/ucs/comment/commentlist.do?'+
                    'comment_date='+back; }

            let today=new Date();
            let n_today=(today.getFullYear())*100+today.getMonth()+1;
            if(now_y*100+now_m==n_today){
                mnew.style.opacity='0.2';
                mnew.style.pointerEvents='none'; }
            else{
                mnew.style.opacity='1';
                mnew.style.pointerEvents='auto'; }

            mnew.onclick=function(){
                let next;
                if(now_m<12){
                    next=now_y*100+now_m+1; }
                else{
                    next=(now_y+1)*100+1; }
                location.href='https://blog.ameba.jp/ucs/comment/commentlist.do?'+
                    'comment_date='+next; }
        } // month_select()

    }); // window.addEventListener



    function height_g(elem, limit){
        let s_height=elem.scrollHeight;
        if(s_height<300){
            elem.style.height='auto'; }
        else{
            if(limit!=2){
                elem.style.height='300px'; }
            else if(limit==2){
                elem.style.height='auto'; }}}

} // コメント管理画面で動作



function get_cookie(name){
    let cookie_req=document.cookie.split('; ').find(row=>row.startsWith(name));
    if(cookie_req){
        if(cookie_req.split('=')[1]==null){
            return 0; }
        else{
            return cookie_req.split('=')[1]; }}
    if(!cookie_req){
        return 0; }}




if(path.match(/commentsettings/)){ // コメント設定画面で動作

    window.addEventListener('load', function(){

        page_design();

        function page_design(){
            let style=
                '<style id="co_list_add">'+
                '#ucsMain { display: flex; flex-direction: column; background: #fff; } '+
                '#ucsMainLeft { position: relative; width: 740px; margin: 15px auto 0; } '+
                '#ucsMainRight { display: none; }</style>';

            if(!document.querySelector('#co_list_add')){
                document.documentElement.insertAdjacentHTML('beforeend', style); }}



        let SettingsList=document.querySelector('.commentSettingsList');
        if(SettingsList){

            let list1=document.createElement('li');
            list1.setAttribute('id', 'list1');
            list1.classList.add('commentSettingsList__item');
            list1.innerHTML=
                '<div class="commentSettingsList__link" style="justify-content: normal">'+
                '公開済みリスト 初期表示のコメント内容:'+
                '<input name="appr" type="radio" id="approved0">非表示'+
                '<input name="appr" type="radio" id="approved1">制限表示'+
                '<input name="appr" type="radio" id="approved2">全文表示</div>';
            if(!SettingsList.querySelector('#list1')){
                SettingsList.appendChild(list1); }

            let list2=document.createElement('li');
            list2.setAttribute('id', 'list2');
            list2.classList.add('commentSettingsList__item');
            list2.innerHTML=
                '<div class="commentSettingsList__link"  style="justify-content: normal">'+
                '承認待ちリスト 初期表示のコメント内容:'+
                '<input name="pend" type="radio" id="pending0">非表示'+
                '<input name="pend" type="radio" id="pending1">制限表示'+
                '<input name="pend" type="radio" id="pending2">全文表示</div>';
            if(!SettingsList.querySelector('#list2')){
                SettingsList.appendChild(list2); }

            let list3=document.createElement('li');
            list3.setAttribute('id', 'list3');
            list3.classList.add('commentSettingsList__item');
            list3.innerHTML=
                '<div class="commentSettingsList__link"  style="justify-content: normal">'+
                '承認したコメントの緑マーク 保持時間:'+
                '<input name="save" type="radio" id="save0">1時間'+
                '<input name="save" type="radio" id="save1">6時間'+
                '<input name="save" type="radio" id="save2">マーク非表示</div>';
            if(!SettingsList.querySelector('#list3')){
                SettingsList.appendChild(list3); }

            let list4=document.createElement('li');
            list4.setAttribute('id', 'list4');
            list4.classList.add('commentSettingsList__item');
            list4.innerHTML=
                '<div class="commentSettingsList__link"  style="justify-content: normal">'+
                '承認したコメントの緑マーク リセット仕様:'+
                '<input name="mode" type="radio" id="mode0">コメント参照時'+
                '<input name="mode" type="radio" id="mode1">返信の送信時</div>';
            if(!SettingsList.querySelector('#list4')){
                SettingsList.appendChild(list4); }

            let list5=document.createElement('li');
            list5.setAttribute('id', 'list5');
            list5.classList.add('commentSettingsList__item');
            list5.innerHTML=
                '<div class="commentSettingsList__link"  style="justify-content: normal">'+
                '返信コメント編集時 編集画面の背景表示:'+
                '<input name="emode" type="radio" id="emode0">なし'+
                '<input name="emode" type="radio" id="emode1">暗転'+
                '<input name="emode" type="radio" id="emode2">ホワイトアウト</div>';
            if(!SettingsList.querySelector('#list5')){
                SettingsList.appendChild(list5); }


            let list6=document.createElement('li');
            list6.setAttribute('id', 'list6');
            list6.classList.add('commentSettingsList__item');

            let inner=
                '<div class="commentSettingsList__link"  style="justify-content: normal">'+
                'コメントリスト枠の配色:'+
                '<input type="color" id="item_color">'+
                '<span id="co_down">▼</span><span id="co_up">▲</span>'+
                '<span id="co_test">Comment C-O <b>枠色サンプル</b> '+
                '<span id="co_ticon">…</span></span>'+
                '</div>'+
                '<style>'+
                '.commentSettingsList input { margin-left: 20px; margin-right: 6px; } '+
                '#list6 { user-select: none; } '+
                '#list6>div:hover { background: #fafafa !important; } '+
                '#item_color { height: 28px; width: 24px; margin-top: -3px; '+
                'border: none; background-color: transparent; cursor: pointer; } '+
                '#co_down, #co_up { display: inline-block; line-height: 18px; height: 16px; '+
                'padding: 1px; margin: -3px -5px 0 8px; '+
                'color: #999; border: 1px solid #aaa; border-radius: 2px; cursor: pointer; } '+
                '#co_down:hover, #co_up:hover { color: #000; } '+
                '#co_test { color: #333; padding: 4px 15px 2px; border: 1px solid #d4d5d6; '+
                'margin-left: 50px; } '+
                '#co_ticon { display: inline-block; font-weight: bold; padding: 0 2px; '+
                'height: 20px; border: 1px solid #aaa; border-radius: 4px; '+
                'color: #757575; background: #fff; } ';

            if(ua==1){
                inner +='#item_color { height: 20px; width: 20px; } '; }

            inner +='</style>';

            list6.innerHTML=inner;
            if(!SettingsList.querySelector('#list6')){
                SettingsList.appendChild(list6); }



            set_radio();

            function set_radio(){
                let approved=get_cookie('approved');
                let approved0=document.querySelector('#approved0');
                let approved1=document.querySelector('#approved1');
                let approved2=document.querySelector('#approved2');
                if(approved==0){ // approved: 0:コメント非表示 1:制限表示 2:全文表示
                    approved0.checked=true; }
                else if(approved==1){
                    approved1.checked=true; }
                else if(approved==2){
                    approved2.checked=true; }
                document.cookie='approved='+approved+'; Max-Age=2592000';

                let pending=get_cookie('pending');
                let pending0=document.querySelector('#pending0');
                let pending1=document.querySelector('#pending1');
                let pending2=document.querySelector('#pending2');
                if(pending==0){ // pending: 0:コメント非表示 1:制限表示 2:全文表示
                    pending0.checked=true; }
                else if(pending==1){
                    pending1.checked=true; }
                else if(pending==2){
                    pending2.checked=true; }
                document.cookie='pending='+pending+'; Max-Age=2592000';

                let save=get_cookie('save_time'); // save: 0:1時間 1:6時間 2:マーク非表示
                let save0=document.querySelector('#save0');
                let save1=document.querySelector('#save1');
                let save2=document.querySelector('#save2');
                if(save==0){
                    save0.checked=true; }
                else if(save==1){
                    save1.checked=true; }
                else if(save==2){
                    save2.checked=true; }
                document.cookie='save_time='+save+'; Max-Age=2592000';

                let mode=get_cookie('mode_key'); // mode: 0:コメント参照時 1:返信の送信時
                let mode0=document.querySelector('#mode0');
                let mode1=document.querySelector('#mode1');
                if(mode==0){
                    mode0.checked=true; }
                else if(mode==1){
                    mode1.checked=true; }
                document.cookie='mode_key='+mode+'; Max-Age=2592000';

                let emode=get_cookie('emode_key'); // emode: 0:なし 1:暗転 2:ホワイトアウト
                let emode0=document.querySelector('#emode0');
                let emode1=document.querySelector('#emode1');
                let emode2=document.querySelector('#emode2');
                if(emode==0){
                    emode0.checked=true; }
                else if(emode==1){
                    emode1.checked=true; }
                else if(emode==2){
                    emode2.checked=true; }
                document.cookie='emode_key='+emode+'; Max-Age=2592000';

            } // set_radio()



            radio_select();

            function radio_select(){
                let approved0=document.querySelector('#approved0');
                approved0.onchange=function(){
                    document.cookie='approved=0; Max-Age=2592000'; }

                let approved1=document.querySelector('#approved1');
                approved1.onchange=function(){
                    document.cookie='approved=1; Max-Age=2592000'; }

                let approved2=document.querySelector('#approved2');
                approved2.onchange=function(){
                    document.cookie='approved=2; Max-Age=2592000'; }

                let pending0=document.querySelector('#pending0');
                pending0.onchange=function(){
                    document.cookie='pending=0; Max-Age=2592000'; }

                let pending1=document.querySelector('#pending1');
                pending1.onchange=function(){
                    document.cookie='pending=1; Max-Age=2592000'; }

                let pending2=document.querySelector('#pending2');
                pending2.onchange=function(){
                    document.cookie='pending=2; Max-Age=2592000'; }

                let save0=document.querySelector('#save0');
                save0.onchange=function(){
                    document.cookie='save_time=0; Max-Age=2592000'; }

                let save1=document.querySelector('#save1');
                save1.onchange=function(){
                    document.cookie='save_time=1; Max-Age=2592000'; }

                let save2=document.querySelector('#save2');
                save2.onchange=function(){
                    document.cookie='save_time=2; Max-Age=2592000'; }

                let mode0=document.querySelector('#mode0');
                mode0.onchange=function(){
                    document.cookie='mode_key=0; Max-Age=2592000'; }

                let mode1=document.querySelector('#mode1');
                mode1.onchange=function(){
                    document.cookie='mode_key=1; Max-Age=2592000'; }

                let emode0=document.querySelector('#emode0');
                emode0.onchange=function(){
                    document.cookie='emode_key=0; Max-Age=2592000'; }

                let emode1=document.querySelector('#emode1');
                emode1.onchange=function(){
                    document.cookie='emode_key=1; Max-Age=2592000'; }

                let emode2=document.querySelector('#emode2');
                emode2.onchange=function(){
                    document.cookie='emode_key=2; Max-Age=2592000'; }

            } // radio_select()



            list_color();

            function list_color(){

                let item_color_set=get_cookie('item_color_set'); // リストの枠色
                if(item_color_set==0){
                    item_color_set='#d8e1e5'; }

                let item_color=document.querySelector('#item_color');
                item_color.value=item_color_set;
                test_disp(item_color_set);
                document.cookie='item_color_set='+item_color.value+'; Max-Age=2592000';

                item_color.onchange=function(){
                    test_disp(item_color.value);
                    document.cookie='item_color_set='+item_color.value+'; Max-Age=2592000'; }

                let co_down=document.querySelector('#co_down');
                let co_up=document.querySelector('#co_up');

                co_down.onclick=function(){
                    item_color.value=hex_darken(item_color.value);
                    test_disp(item_color.value);
                    document.cookie='item_color_set='+item_color.value+'; Max-Age=2592000'; }

                co_up.onclick=function(){
                    item_color.value=hex_lighten(item_color.value);
                    test_disp(item_color.value);
                    document.cookie='item_color_set='+item_color.value+'; Max-Age=2592000'; }

            } // list_color()


            function hex_darken(hex){ // 明度を段階的に下げる
                if(hex.slice(0, 1)=='#'){
                    hex=hex.slice(1); }
                if(hex.length==3){
                    hex=hex.slice(0,1) + hex.slice(0,1) + hex.slice(1,2) + hex.slice(1,2) +
                        hex.slice(2,3) + hex.slice(2,3); }
                // 透過度 1.1 とした色値に変更
                let R=parseInt(hex.slice(0, 2), 16);
                let G=parseInt(hex.slice(2, 4), 16);
                let B=parseInt(hex.slice(4, 6), 16);
                return unequal_color(R, G, B, 0.9); } // 非透過色値に変更

            function unequal_color(R, G, B, A){ // RGBは整数 Aは小数が必須 ➔ 等価 6桁hexに変換
                return '#'
                    + tohex(downColor(R, A))
                    + tohex(downColor(G, A))
                    + tohex(downColor(B, A));
                function downColor(value, A){
                    let color_value=value/A - 255*(1/A - 1);
                    return Math.floor(color_value); }
                function tohex(value){
                    return ('0'+ value.toString(16)).slice(-2); }}


            function hex_lighten(hex){ // 明度を段階的に上げる
                if(hex.slice(0, 1)=='#'){
                    hex=hex.slice(1); }
                if(hex.length==3){
                    hex=hex.slice(0,1) + hex.slice(0,1) + hex.slice(1,2) + hex.slice(1,2) +
                        hex.slice(2,3) + hex.slice(2,3); }
                // 透過度 0.9 とした色値に変更
                let R=parseInt(hex.slice(0, 2), 16);
                let G=parseInt(hex.slice(2, 4), 16);
                let B=parseInt(hex.slice(4, 6), 16);
                return equal_color(R, G, B, 0.9); } // 非透過色値に変更

            function equal_color(R, G, B, A){ // RGBは整数 Aは小数が必須 ➔ 等価 6桁hexに変換
                return '#'
                    + tohex(upColor(R, A))
                    + tohex(upColor(G, A))
                    + tohex(upColor(B, A));
                function upColor(value, A){
                    let color_value=value*A + 255*(1 - A);
                    return Math.floor(color_value); }
                function tohex(value){
                    return ('0'+ value.toString(16)).slice(-2); }}


            function test_disp(color){
                let test=document.querySelector('#co_test');
                if(test){
                    test.style.background=color; }}



            help();

            function help(){
                let cmm_set=document.querySelector('.commentSettings');
                if(cmm_set){
                    let help_description=
                        '<p id="CO_help" style="font-size: .875rem; padding: 20px 0;">'+
                        'Comment C-O の設定方法については '+
                        '<a href="https://ameblo.jp/personwritep/entry-12772207230.html" '+
                        'target="_blank"> 操作マニュアル</a> を参照ください。</p>';

                    if(!document.querySelector('#CO_help')){
                        cmm_set.insertAdjacentHTML('beforeend', help_description); }}}

        }}); // window.addEventListener

} // コメント設定画面で動作



 

 

〔追記〕 2024.03.13

パネル配色の指定が 30日で無効化する問題を修正しました。

この修正で、「ver.1.6」➔「ver.1.7」にバージョンを更新しました。

 

 

 

「Comment C-O With CSS」最新版について 

旧いバージョンの JavaScriptツールは、アメーバのページ構成の変更で動作しない場合があり、導入する場合は最新バージョンをお勧めします。 最新バージョンへのリンクは、以下のページのリンクリストから探せます。