「Edit Yahoo Img」の使用方法

「Edit Yahoo Img」は「Search Yahoo Img」で作成した該当記事のリストを使い、Yahoo画像を検出した記事をワンタッチで呼び出せます。

 

◎ ユーザー自身の目でページの状態を確認します。 運良く救出できる画像があった場合は、それをユーザーの手作業でデスクトップなどに取得してください。

 

◎ このツールは即座に再編集画面を開くことができます。 編集画面で画像をアップロードし、記事から不要な無効リンクを削除し、取得した画像の貼付けを行います。

 

該当記事を順に調べないと、実際に救出できる画像が有るかどうかは判りません。 画像の取得は少々スキルが必要かもしれません。 アメーバ告知に書かれている様に、「リンクが無効だが画像が表示されている」状態なら、画像をデスクトップにドラッグすれば画像を取得できます。

 

しかし、私の調べた範囲では、画像のSRCを書換えて初めて画像が表示される場合があります。 ツールには、このSRC修正の機能を組み込みましたが、どの程度有効かは判りません。

 

また、現在の初期バージョンは、ページ上で画像を探すのを手伝う機能がないので、これは可能であれば、今後に機能を追加したいと思います。

 

 

 

❶ ツールの起動 

「Search Yahoo Img」を「ON」にしていた場合は、「Tampermonkey」のダッシュボードを開き、必ず「OFF」にしてください。 

 

◎「Edit Yahoo Img」を「ON」にします。 このツールは自動処理を行わないので、他のツールや拡張機能と一緒に動作をさせても、問題は生じ難いと思います。 通常のブログ編集をする環境で「Edit Yahoo Img」を「ON」にしてください。

 

 

◎ ユーザー自身の任意のブログページを開きます。ブラウザの「 」ボタンでページをリロードすると、「アメーバヘッダー」上にコントロールパネルが表示されます。

 

 

▪ 説明は後半に書いていますが、最初に起動した時に「♻ Sort」のボタンを押して、調査データのソートを1度だけ行ってください。 特に、後から追加のスキャンをした場合は、ソートが必要です。

 

▪「アメンバー記事」をスキャンした場合、「通常の記事の調査データ」と、「アメンバー記事の調査データ」は、分けられて保存されています。「アメンバー記事」を開いて「Edit Yahoo Img」を起動すると、その調査データを扱えます。  

 

 

 

パネルの機能 

以下は「Edit Yahoo Img」のパネルです。 横にスクロールして見てください。

 

 

 

 

❶ 処理済マークの記事数 

「メモボタン」❹ で処理済の「青」マークを付けた記事数の表示

 

 

❷ 検出した該当記事数 

「Search Yahoo Img」で検出した該当記事数の表示で、これは変わりません。

 

 

 ❸ 新しい該当記事へ移動

現在 該当記事を表示している場合、リストのひとつ新しい該当記事に移動します。

現在 該当記事以外を表示している場合は、側近の日付の該当記事に移動します。

 

 

❹「メモボタン」 

該当記事は初期設定は「赤」マークが表示されます。「メモボタン」を押すと、処理済を意味する「青」マークになり、もう一度ボタンを押すと「赤」に戻せます。

 

▪ メモ内容は調査データに記録され、調査データを削除しない限り保持されます。

 

▪ ❸ ❻ の移動ボタンは常に該当記事を開きますが、「青」マークを付けた記事は移動先の対象から外れます。 対象に戻したい時は ➐のリストで記事を探して戻します。

 

▪ ブログページの「ページャー」「記事一覧」などを使い、該当記事以外を表示できます。 該当記事以外を表示している時は、ボタン❹は「グレー」の表示です。

 

 

 

➎「記事のデータ表示枠」 

この枠内に、現在開いている記事のデータが表示されます。

 

▪左端は記事上の検索されたYahoo画像数です。 画像数が1個の場合は表示されませんが、2個なら「2*」3個は「3*」と表示されます。 この表示は、画像が複数ある場合に見落としを避けるためです。

 

▪記事IDは、記事ごとに付けられた固有の11桁の番号です。 この数はブラウザのURL窓に「entry-XXXX」として表示されています。

 

▪記事日付は投稿日時です。 記事タイトル下に表示される日時の部分です。

 

 

▪ この「データ表示枠」を「左クリック」すると、別タブにこの記事の再編集画面が開きます。「Shift+左クリック」では別ウインドウに再編集画面が開きます。 表示中の記事を即時に編集でき、画像の貼り付けや記事修正がはかどります。

 

 

 ❻ 旧い該当記事へ移動

現在 該当記事を表示している場合、リストのひとつ旧い該当記事に移動します。

現在 該当記事以外を表示している場合は、側近の日付の該当記事に移動します。

 

 

➐ リスト表示 機能

このツールのページャー ❸ ❻ では、リストの隣の記事にしか移動できません。 離れた日付の該当記事を探したり表示したい場合は、リスト表示機能を使います。

 

▪「▽ List」のボタンを押すと、下の様な該当記事の全てをスクロール表示するリストが表示されます。 該当記事数が多いと、リストは更に下方に延びます。

 

 

▪ リスト表示は ➎の「データ表示枠」と同内容です。 リスト行を「左クリック」すると、その行の記事を表示できます。 この機能で ❸ ❻ では移動し難い離れた記事へ、簡単に移動できます。

 

▪ メモボタン❹ で処理済にした記事は ❸ ❻ で探せなくなります。  処理済の記事を探したいたい時や、処理済を未処理に戻したい時は、このリストで記事を探し、行をクリックして記事を呼び出すのが最短です。

 

 

 ❽ Trial 機能

「❖ Trial」ボタンは、画像のSRCを試験的に書換えます。 表示されない画像の表示を試す手段で、他の方法で表示させる事が可能かも知れません。 PCが読み取ったSRCを書換えるだけで、ページをリロードすると元に戻ります。

 

「blog-001.west.edge.storage-yahoo.jp」の画像データで、SRC中の「other-」の文字列を削除すると、画像が表示される場合があります。

 

<a class="userDefTextLink" href="https://blogs.yahoo.co.jp/my_kinako0519/GALLERY/show_image.html?id=40394280&amp;no=17" target="_blank">
<img alt="イメージ 18" class="popup_img_500_455" data-amb-layout="fill-width" height="455" loading="eager" src="https://other-blog-001.west.edge.storage-yahoo.jp/res/blog-88-b4/my_kinako0519/folder/1287920/80/40394280/img_17_m?1484197214" width="500"></a>

 

この「other-」や「OTHER-」の文字は、引っ越し時に追加されたものらしく、これを省くと画像が表示できる場合があります。「❖ Trial」は、この書換を試す機能で、画像が表示されれば、デスクトップにドラッグする事で画像を取得できます。 これまで「OTHER-」の削除では成功した例はなく、成否はサーバーに拠るのかも知れません。 ダメ元で押してみるボタンです。

 

 

➒ ソート 

「♻ Sort」のボタンを押すと、「Search Yahoo Img」が作成した調査データを、記事の日付順に並べ直します。

 

▪ 過去記事からスキャンを一回で行った場合は、ソートは不要です。

 

▪ 先に新しい範囲をスキャンし、後で旧い範囲のスキャンを行うと、調査データの記事日付が新旧の順ではなくなります。 下はその例で、上側はデータが日付け順ではなく、下がソートを実行後です。

 

 

調査データが新旧順でない場合、「ページャー」❸ ❻ の移動で、記事の表示が時系列の順でなくなり、移動時に混乱します。「Edit Yahoo Img」で調査データを開いた最初の1回だけ、ソートを実行してください。

 

 

➓ 調査データの削除 

「🔅」ボタンは、ローカルストレージを初期化するボタンです。 調査データは軽量で、残しておく方が良いと思います。 しかし、複数のブログを引っ越している場合、調査や修正は1つのブログ毎に行う必要があります。

 

「Edit Yahoo Img」で確認や修正を済ませ、調査データを削除してから、別のブログをスキャンする必要があります。 その調査データの削除に、このボタンが必要です。

 

▪「🔅」ボタンを押すと「データ削除の確認ダイアログ」が表示され、「OK」を押すと削除が実行されます。

 

▪ DevToolsを扱える場合は、手作業で調査データをテキスト保存できます。 また、ストレージに戻す事も可能です。 複数ブログの調査を同時に行う必要がある場合は、コメントください。

 

 

 

 「Edit Yahoo Img」を使用するには 

「Edit Yahoo Img」は Chrome/Edge/Firefox の拡張機能「Tampermonkey」上で動作するスクリプトツールです。 上記のブラウザで動作を確認していますが、他のブラウザでの動作は未確認です。

 

❶「Tampermonkey」を導入します

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

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

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

 

 

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

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

 

 

 

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

 

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

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

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

 

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

 

〔追記〕2021.10.26

以下は初期バージョン 0.1 ですが、次ページに ver. 0.2 があります。 ver. 0.2 は、ページ上の該当画像の位置を「▲」マークの点滅で表示する機能を追加しています。 明らかに ver. 0.2 が使い易く、インストールは ver. 0.2をお勧めします。

 

 

 

 

〔 Edit Yahoo Img 〕 ver. 0.1

 

// ==UserScript==
// @name         Edit Yahoo Img
// @namespace    https://ameblo.jp/
// @version      0.1
// @description  Yahoo由来の画像検索と編集
// @author       Ameblo User
// @match       https://ameblo.jp/*
// @match       https://secret.ameba.jp/*
// @grant        none
// ==/UserScript==


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


let target=document.querySelector('head'); // 監視 target
let monitor=new MutationObserver(do_task);
monitor.observe(target, { childList: true }); // 監視開始

do_task();

function do_task(){
    let entry_id=0;
    let entryWrapper=document.querySelector('.js-entryWrapper');
    if(entryWrapper){
        entry_id=entryWrapper.getAttribute('data-unique-entry-id'); } // 現在のページID

    let pageDB; // 主データ配列 [entry-ID, 対象数, 処理フラグ, 投稿日付, 起動コントロール]
    let idDB=[]; // 記事idの配列

    let read_json=localStorage.getItem('CKIMG_DB'); // ローカルストレージ 保存名
    pageDB=JSON.parse(read_json);
    for(let k=0; k<pageDB.length; k++){
        idDB.push(pageDB[k][0]); } // 記事id検索用の配列を作る


    envi_0();
    envi_1();
    now_entry();



    function now_entry(){
        let done=document.querySelector('#done');
        let page_edit=document.querySelector('#page_edit');
        let entry_date;

        let time=document.querySelector('time');
        if(!time){
            entry_date=' '; }
        else{
            entry_date=time.getAttribute('datetime'); }

        if(entry_id!=0){
            let index=idDB.indexOf(entry_id);
            if(index!=-1){
                if(pageDB[index][2]==0){
                    done.style.boxShadow='inset 0 0 30px red'; // 未処理
                    if(pageDB[index][1]>1){
                        page_edit.value=pageDB[index][1] +'*'+ entry_id +' date: '+ entry_date; }
                    else{
                        page_edit.value=' '+ entry_id +' date: '+ entry_date; }}
                else{
                    done.style.boxShadow='inset 0 0 30px #00e2ff'; // 処理済
                    if(pageDB[index][1]>1){
                        page_edit.value=pageDB[index][1] +'*'+ entry_id +' date: '+ entry_date; }
                    else{
                        page_edit.value=' '+ entry_id +' date: '+ entry_date; }}}
            else{
                done.style.boxShadow='none';
                page_edit.value=' '+ entry_id +' date: '+ entry_date; }} // 対象外
        else{
            page_edit.value='    '; }}



    let done=document.querySelector('#done');
    done.onclick=function(event){ // マニュアルでマークを変更
        event.preventDefault();
        let index=idDB.indexOf(entry_id);
        if(index!=-1){
            if(pageDB[index][2]==0){
                pageDB[index][2]=1; // 処理済に変更
                done.style.boxShadow='inset 0 0 30px #00e2ff'; }
            else{
                pageDB[index][2]=0; // 未処理に変更
                done.style.boxShadow='inset 0 0 30px red'; }
            panel_color(index); } // リストパネルの配色を変更

        let write_json=JSON.stringify(pageDB);
        localStorage.setItem('CKIMG_DB', write_json); } // ローカルストレージ 保存



    function get_date_n(){
        let time=document.querySelector('time');
        if(time){
            let n_time=time.getAttribute('datetime');
            if(n_time){
                let m_time=n_time.replace(/-/g, '');
                return parseInt(m_time, 10); }}
        else return 0; }



    let go_next=document.querySelector('#go_next');
    go_next.onclick=function(){
        let active_arr=[];
        for(let k=1; k<pageDB.length; k++){
            if(pageDB[k][2]==0){ // 未処理の [記事ID,日付] 配列を作る
                active_arr.push([pageDB[k][0], pageDB[k][3]]); }}

        if(entry_id!=0){ // 記事一覧を開いている場合などを除外
            let now_index=active_arr.findIndex(item=> item[0]==entry_id);
            if(now_index!=-1){ // 現在 リスト中の記事ID
                if(now_index==active_arr.length-1){
                    alert("これより最近の未処理ページはありません"); }
                else{
                    goto(active_arr[now_index+1][0]); }}
            else{ // 現在 リスト外の記事ID  日付から次の記事を探す
                let entry_date=get_date_n();
                let next_index=active_arr.findIndex( item=> item[1] >= entry_date );
                if(next_index==-1){
                    alert("これより最近の未処理ページはありません"); }
                else{
                    goto(active_arr[next_index][0]); }}}}


    let go_back=document.querySelector('#go_back');
    go_back.onclick=function(){
        let active_arr=[];
        for(let k=pageDB.length-1; k>=1; k--){
            if(pageDB[k][2]==0){ // 未処理の [ページID,日付] 配列を作る(降順)
                active_arr.push([pageDB[k][0], pageDB[k][3]]); }}

        if(entry_id!=0){ // 記事一覧を開いている場合などを除外
            let now_index=active_arr.findIndex(item=> item[0]==entry_id);
            if(now_index!=-1){ // 現在 リスト中の記事ID
                if(now_index==active_arr.length-1){
                    alert("これより以前の未処理ページはありません"); }
                else{
                    goto(active_arr[now_index+1][0]); }}
            else{ // 現在 リスト外の記事ID  日付から次の記事を探す
                let entry_date=get_date_n();
                let back_index=active_arr.findIndex( item=> item[1] <= entry_date );
                if(back_index==-1){
                    alert("これより以前の未処理ページはありません"); }
                else{
                    goto(active_arr[back_index][0]); }}}}



    let page_edit=document.querySelector('#page_edit');
    page_edit.onclick=function(event){
        let article=document.querySelector('.js-entryWrapper');
        let path=
            'https://blog.ameba.jp/ucs/entry/srventryupdateinput.do?id='+entry_id;
        if(event.shiftKey){
            window.open(path, 0,'top=100, left=200, width=1020, height=900'); }
        else if(event.ctrlKey){
            window.location.href=path; }
        else{
            window.open(path, "_blank"); }}


    page_edit.onchange=panel_act(); // 記事一覧による移動に対応する



    let trial=document.querySelector('#trial'); // SRCの書換えで画像表示を試す
    trial.onclick=function(){
        let entryBody=document.querySelector('#entryBody');
        if(!entryBody){
            entryBody=document.querySelector('.skin-entryBody'); } // アメンバー記事
        let imgs=entryBody.querySelectorAll('img');

        for(let k=0; k<imgs.length; k++){
            if(search_img(imgs[k])==1){
                trial_do(imgs[k]); }}

        function search_img(target_img){
            let pattern=[
                'yahoo.co.jp/IMG/ybi',
                'c.yimg.jp/res/blog',
                'west.edge.storage-yahoo.jp'].join('|');
            let url_regex=RegExp(pattern);

            let img_src=target_img.getAttribute('src');
            if(url_regex.test(img_src)==true){
                return 1; }}

        function trial_do(target_img){
            let img_src=target_img.getAttribute('src');
            let new_src=img_src.replace('://other-', '://');
            target_img.setAttribute('src', new_src); }}



    function envi_0(){
        let css=
            '#disp_yimg0 { position: absolute; top: 0; left: 0; font: 16px Meiryo; z-index: 1; '+
            'padding: 8px 0 6px; color: #000; background: aliceblue; width: 100%; } '+
            '#disp_yimg0 span { font: 16px Meiryo; color: #000; } '+
            '#num1, #num2 { width: 40px; margin-left: 4px; font: 16px Meiryo; '+
            'height: 18px; padding: 3px 8px 0; } '+
            '#go_next, #go_back { height: 26px; font-size: 16px; width: 60px; '+
            'box-shadow: inset 0 0 40px #87caff; } '+
            '#go_next { margin-left: 40px; } '+
            '#done { font: 16px Meiryo; width: 15px; margin-left: 15px; height: 26px; } '+
            '#page_edit { font: 16px Meiryo; height: 26px; width: 310px; text-align: left; '+
            ' padding-left: 6px; margin: 0 15px 0 2px; box-shadow: inset 0 0 30px #fff; } '+
            '#list_panel { margin-left: 30px; box-shadow: inset 0 0 40px #87caff; } '+
            '#trial { margin-left: 50px; box-shadow: inset 0 0 50px #5fd1c1; } '+
            '#page_sort { margin-left: 8px; box-shadow: inset 0 0 40px #5fd1c1; } '+
            '#storage { margin-left: 8px; padding: 0; line-height: 25px; vertical-align: 1px;'+
            'box-shadow: inset 0 0 20px #5fd1c1; } '+

            '.exe { font: 16px Meiryo; height: 26px; font-size: 16px; } '+

            '#i_panel { position: fixed; top: 50px; right: 10px; width: 300px; '+
            'font: 16px Meiryo; color: #000; background: #fff; z-index: 4000; } '+
            '#items_ul { max-height: 60vh; overflow-y: scroll; list-style: none; '+
            'padding: 0px 0 0 22px; } '+
            '.item_li { margin: 6px 0; padding: 4px 0 1px 6px; line-height: 14px; cursor: pointer; } '+
            '.raw { box-shadow: -12px 0 0 red; } .dev { box-shadow: -12px 0 0 #00e2ff; } '+
            '.item_li:hover { background: #eee; } ';

        if(ua==1){
            css+='input[type="submit"] { background: unset; }'; }


        let style=document.createElement('style');
        style.setAttribute('id', 'style_yimg0');
        style.insertAdjacentHTML('afterbegin', css);
        if(!document.querySelector('#style_yimg0')){
            document.body.appendChild(style); } // CSSのセット


        let insert_div0;
        insert_div0=document.createElement('div');
        insert_div0.setAttribute('id', 'disp_yimg0');
        let ambHeader=document.querySelector('#ambHeader');
        if(!ambHeader.querySelector('#disp_yimg0')){
            ambHeader.appendChild(insert_div0); }

        insert_div0.innerHTML=
            '<span> 処理済</span>'+
            '<input id="num1" type="text" readonly>'+
            '<span> リスト</span>'+
            '<input id="num2" type="text" readonly>'+
            '<input id="go_next" type="submit" value="◀">'+
            '<input id="done" type="submit" value=" ">'+
            '<input id="page_edit" type="submit" value=" ">'+
            '<input id="go_back" type="submit" value="▶">'+
            '<input id="list_panel" class="exe" type="submit" value="▽&#x2006;List">'+
            '<input id="trial" class="exe" type="submit" value="❖&#x2006;Trial">'+
            '<input id="page_sort" class="exe" type="submit" value="♻&#x2006;Sort">'+
            '<input id="storage" class="exe" type="submit" value="🔅">';

    } // envi_0()



    function envi_1(){ // 処理済・リスト数を表示
        let num1=document.querySelector('#num1');
        let num2=document.querySelector('#num2');

        let undone=0;
        for(let k=0; k<pageDB.length; k++){
            if(pageDB[k][2]==1){
                undone+=1; }}

        num1.value=undone;
        num2.value=pageDB.length -1; }



    let page_sort=document.querySelector('#page_sort');
    page_sort.onclick=function(){ // 主配列を末尾の entry-date でソートする

        let conf_str=' 🟢 Yahoo画像の調査ツール「Search Yahoo Img」で\n'+
            '  調査や追加の調査を行った後は、データのソートを\n'+
            '  行ってください。\n'+
            '  ソートにより「Edit Yahoo Img」のページ送り順が\n'+
            '  ブログのページ順と同じになります。\n\n'+
            '    ソートする場合は「OK」を押してください';

        let ok=confirm(conf_str);
        if(ok){
            pageDB.sort((a, b)=>{ // 日付が若い順にソート
                if(a[3] > b[3]) return 1;
                if(a[3] < b[3]) return -1;
                return 0; });
            let write_json=JSON.stringify(pageDB);
            localStorage.setItem('CKIMG_DB', write_json); // ローカルストレージ 保存
            window.location.reload(); }}




    let list_panel=document.querySelector('#list_panel');
    list_panel.onclick=function(){
        let i_panel=document.querySelector('#i_panel');
        if(!i_panel || i_panel.style.display=='none'){
            disp_itemes(1); }
        else{
            disp_itemes(0); }}



    function disp_itemes(n){
        if(n==1){
            let i_panel=document.querySelector('#i_panel');
            if(!i_panel){ // リスト未作成
                let panel=document.createElement('div');
                panel.innerHTML=
                    '<ul id="items_ul"></ul>';
                panel.setAttribute('id', 'i_panel');
                document.querySelector('body').appendChild(panel);

                let items_ul=document.querySelector('#items_ul');
                if(items_ul){
                    items_ul.innerHTML='';
                    for(let k=1; k<pageDB.length; k++){
                        let item_li=document.createElement('li');
                        item_li.setAttribute('class', 'item_li');
                        if(pageDB[k][2]==0){
                            item_li.classList.add('raw'); }
                        else if(pageDB[k][2]==1){
                            item_li.classList.add('dev'); }
                        if(pageDB[k][1]>1){
                            item_li.innerHTML=pageDB[k][1] +'*'+ pageDB[k][0] + m(pageDB[k][3]); }
                        else{
                            item_li.innerHTML=' &#x2006;'+ pageDB[k][0] + m(pageDB[k][3]); }
                        items_ul.appendChild(item_li); }}}
            else{ // リスト作成済
                i_panel.style.display='block'; }

            panel_act();
            panel_get(); }

        else{
            let i_panel=document.querySelector('#i_panel');
            if(i_panel){
                i_panel.style.display='none'; }}

        function m(da){
            let d=da.toString();
            return ' '+ d.slice(0, 4) +'-'+ d.slice(4, 6) +'-'+ d.slice(6, 8); }
    } // disp_itemes()



    function panel_act(){ // 日付の近いリスト行を表示
        let entry_date=get_date_n();
        if(entry_date!=0){
            let next_index=pageDB.findIndex( item=> item[3] >= entry_date );
            if(next_index==-1){
                next_index=pageDB.length-1; }
            let list_items=document.querySelectorAll('.item_li');
            if(list_items.length>0){
                list_items[next_index-1].scrollIntoView({block: "center"}); }}}



    function panel_get(){
        let list_items=document.querySelectorAll('.item_li');
        for(let k=0; k<list_items.length; k++){
            list_items[k].onclick=function(){
                goto_(k); }}
        function goto_(k){
            goto(pageDB[k+1][0]); }}



    function goto(entry){
        let path=location.pathname; // 現在のパス名
        let user_id=path.split('/')[1];
        let goto_url=
            'https://ameblo.jp/'+ user_id +'/entry-'+ entry +'.html';
        window.location.href=goto_url; }



    function panel_color(index){
        let list_items=document.querySelectorAll('.item_li');
        if(list_items[index-1]){
            list_items[index-1].classList.toggle('raw');
            list_items[index-1].classList.toggle('dev'); }}



    let storage=document.querySelector('#storage');
    storage.onclick=function(){
        let conf_str=
            ' 🔴 全ての調査データを削除します\n\n'+
            '  調査データは 70kB/1000件で、ローカルストレージ\n'+
            '  の容量を心配する必要はありません。\n'+
            '  再調査の目的でデータをリセットする場合を除いて\n'+
            '  調査データを削除せずにしておく事をお勧めします。\n\n'+
            '  データを全削除する場合は「OK」を押してください';

        let ok=confirm(conf_str);
        if(ok){
            pageDB=[['', 0, 0, 0, 1]];
            let write_json=JSON.stringify(pageDB);
            localStorage.setItem('CKIMG_DB', write_json); // ローカルストレージ 保存
            window.location.reload(); }}

} // do_task()