はじめに。
取引ナビで追跡番号や、追跡用のURLを「こっちでコピーして、こっちでペーストして」というのが、面倒になって作ったものです。
俺は そうやってると言うだけの話ですが、基本的にクリックポストのサイトやWEBゆうプリから追跡番号をコピーしてくることを想定して作っています。
promptもどき(表示される入力欄)に手入力しても特に問題はありません。
動作確認環境
Windows 10
Google Chrome 67
使い方。
まず、ヤフオクの取引ナビで落札者の名前を確認します。
次に、クリックポストやWEBゆうプリのサイトから、その人の追跡番号をコピーしてきます。
取引ナビで [ 発送連絡をする ]ボタンをクリックします。
そこで、このブックマークレットを起動し、promptもどきに追跡番号を入力します。
数字を12桁入力した時点で、勝手に次に進みます。
(特定記録は11桁ですので、手動で[ OK ]をクリックする必要があります)
「追跡番号」と「配送状況確認ページURL」に自動で入力し[ 確認する ]ボタンも勝手に押されます。
このときに、「配送状況確認ページURL」に入力されたページをウィンドウで表示します。
(確認用で表示しているだけですので、これが鬱陶しい場合はコード内に書かれてある一行を削除して下さい)
ページ遷移後の[ 決定する ]ボタンは、自分で押して下さい。
コード。
特に難しいことはしていませんし、細かい説明はコードのコメントを読んでもらえれば分かるかと思います。
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'> ";
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); }
}())
おわりに。
一応、自分でも使ってますが、ちょいちょい手直しを加えていったものなので、どこか おかしいかもしれません。