取引ナビで追跡番号を知らせる。(ヤフオク個人出品者向け ブックマークレット) 

## はじめに。

取引ナビで追跡番号や、追跡用のURLを「こっちでコピーして、こっちでペーストして」というのが、面倒になって作ったものです。

俺は そうやってると言うだけの話ですが、基本的にクリックポストのサイトやWEBゆうプリから追跡番号をコピーしてくることを想定して作っています。

promptもどき(表示される入力欄)に手入力しても特に問題はありません。

## 動作確認環境

Windows 10
Google Chrome 67

## 使い方。

まず、ヤフオクの取引ナビで落札者の名前を確認します。
次に、[クリックポスト](https://clickpost.jp/)や[WEBゆうプリ](https://www.post.japanpost.jp/web-yu-packprint/)のサイトから、その人の追跡番号をコピーしてきます。
取引ナビで [ 発送連絡をする ]ボタンをクリックします。

そこで、このブックマークレットを起動し、promptもどきに追跡番号を入力します。

数字を12桁入力した時点で、勝手に次に進みます。
（特定記録は11桁ですので、手動で[ OK ]をクリックする必要があります）

「追跡番号」と「配送状況確認ページURL」に自動で入力し[ 確認する ]ボタンも勝手に押されます。

このときに、「配送状況確認ページURL」に入力されたページをウィンドウで表示します。
（確認用で表示しているだけですので、これが鬱陶しい場合はコード内に書かれてある一行を削除して下さい）

ページ遷移後の[ 決定する ]ボタンは、自分で押して下さい。

## コード。

特に難しいことはしていませんし、細かい説明はコードのコメントを読んでもらえれば分かるかと思います。

```javascript

javascript:void(function(){

/* 発送連絡のページであることをチェック */

var url02 = location.href.substr(0,48);
if ((url02 != "https://contact.auctions.yahoo.co.jp/seller/edit" ) && (url02 != "https://contact.auctions.yahoo.co.jp/seller/subm" )) { 

    alert("「取引ナビ」の「発送連絡 入力」の画面で実行してください。");

} else {

    /* prompt もどき を表示 */

    var sc = document.scrollingElement.scrollTop; 

    var text = document.createElement("span");

    var prm = "追跡番号を入力して下さい。<br><br>(数字を12桁入力すると、勝手に次の画面へ進みます)<br><br>";
    prm += "<input type=text id=memo size=20 placeholder='追跡番号' value=''><br><br>";
    prm += "<input type=button id=ok value='OK'>&nbsp;";
    prm += "<input type=button id=cancel value='キャンセル'>";
    text.innerHTML=prm;

    var ts = text.style;

    ts.color = '#000';
    ts.backgroundColor = 'white';
    ts.padding = '15px';
    ts.border = '1px solid gainsboro';
    ts.boxShadow = '3px 3px 10px';
    ts.zIndex = '100';

    document.body.appendChild(text);

    ts.position = 'absolute'; 
    ts.top = 50 + sc + 'px'; 
    ts.left = (window.innerWidth / 2)-(text.offsetWidth / 2) + 'px'; 

    /* promptもどきのイベント関係の処理とか */

    var m=document.getElementById('memo');
    m.focus();
    m.onkeyup = input_check;

}

/* [OK]を押した場合、次の処理へ。(入力文字数のチェックはしていない) */

document.getElementById('ok').onclick = next;

function next() { 

    var num=m.value.trim();

    if(num){

        /* 追跡番号と追跡用のURLをFORMに入力 */

        var url='https://trackings.post.japanpost.jp/services/srv/search/direct?reqCodeNo1=' + num;

        document.getElementsByName("shipInvoiceNumReg")[1].checked=true;
        document.getElementsByName("shipInvoiceNumber1")[0].value=num;
        document.getElementsByName("shipUrl")[0].value=url;

        /* 新しいウィンドウで このURLを開く(数字が間違ってないかの確認用なので、それが不要なら この一行は削っていい) */ 

        window.open(url, 'newwindow', "width=960,height=700");

        /* 「確認する」ボタンを 自動で押す。*/ 

        var arrs=document.getElementsByTagName("input");
        for(i=0;i<arrs.length;i++){ if(arrs[i].value=="確認する"){ arrs[i].click();} } ;
        
    }

    cls();

}

/* 数字12桁(クリックポスト等の追跡番号)が入力されたら、[OK]を押さなくても自動で次の処理へ進む。 */

function input_check() {
    var mc = m.value.replace(/[^0-9]/g, '');
    if (mc.length > 11) next();
}

/* [キャンセル]を押した場合は、ただ閉じる。 */

document.getElementById('cancel').onclick = cls;

function cls() { document.body.removeChild(text); }

}())

```

## おわりに。

一応、自分でも使ってますが、ちょいちょい手直しを加えていったものなので、どこか おかしいかもしれません。