ISBNや出版社の情報も取り込むブックマークレット
実行するために、最初ちょっとやることがあるので注意
Project Settings > Page Data > Bookmarklet をドラッグ&ドロップ等でブックマークに登録する
https://gyazo.com/732a14789a77cb617cce6ef8d940f988
このBookmarkletはクリックするとjavascriptが実行される仕組みになっている
その後、ブックマークされたものを右クリック等で編集メニューに行き、
https://gyazo.com/e03ad752a9a7cf258c82015126b57d9c
URLの部分を以下のコード(javascript: (function....)に書き換える
その際、'src='の部分を実行したいJavascriptが書いてあるCosenseのページのAPIに書き換えないといけない
今回の場合は、このページに実行したいJavascriptが記載されているので、URLを適当にメモ帳などにコピペする
https://gyazo.com/00c449f85d49d6fd085ba56811441fa7
自分の場合は 'ngsn/ISBN%E3%...' の部分だけをコピーして、
https://scrapbox.io/api/code/の後の部分にペーストする
末尾に/script.jsを付加することを忘れずに
結果として
src='https://scrapbox.io/api/code/ngsn/ISBN%E3%82%84%E5%87%BA%E7%89%88%E7%A4%BE%E3%81%AE%E6%83%85%E5%A0%B1%E3%82%82%E5%8F%96%E3%82%8A%E8%BE%BC%E3%82%80%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E3%83%AC%E3%83%83%E3%83%88/script.js'
という感じになる
これで、指定したページのJavascriptが実行されるようになったのであとはコードを書くだけ
import '/api/code/ngsn/ISBNや出版社の情報も取り込むブックマークレット/script.js'
というようにimportするように書いてあげれば有効化される
Amazon の好きな書籍のページに行って、設定したブックマークをクリックすると
https://gyazo.com/0e5be17bf390c99c174e0c2b423b1e60
https://gyazo.com/002beaedca56f975bb19e00705e14ad7
こんな感じで登録される
code:script.js
javascript:(function(){
var p = document.getElementById("productTitle");//書籍のタイトルの処理
if (!p) var p = document.getElementById("ebooksProductTitle");
var title = window.prompt('Scrap "Amazon" to your scrapbox.', p.innerText.trim());
if (!title) return;
title = '『'+ title +'』';
var asin = document.getElementById('ASIN');//ASIN番号の処理
if(asin){
var a = 'ISBN:' + asin.value;
}else{
var asin = document.getElementsByName('ASIN.0')0,a = 'ASIN:' + asin.value; }
var detail = document.getElementById('detailBullets_feature_div');//出版社と出版年月の処理
if (!detail) {
var subdoc = document.getElementById("product-description-iframe").contentWindow.document;
var detail = subdoc.getElementById("productDetailsTable");
}
var detailtext = detail.innerText;
var pubdata = detailtext.match(/(出版社 : .+) (\(.+\))/);//1出版社:シーアンドアール研究所,2(2018/7/27) if (pubdata){
pubdata1 = pubdata1.replace(/: /,':[');//出版社名をリンクにしないならこの2行は削除する pubdata1 = (pubdata1.match(/;/)?pubdata1.replace(/;/,'];'):pubdata1.trim() + ']'); //pubdata2 = pubdata2 + ' ';//リンクなし //pubdata2 = pubdata2.replace(/\((\d+)\//, '($1/') + ' ';//年をリンクに pubdata2 = pubdata2.replace(/\((\d+\/\d+)\//, '($1/') + ' ';//年月をリンクに }else{
}
//内容紹介の処理
//bookDescription_feature_div
const isbookDesc = document.getElementById("bookDescription_feature_div")
if(isbookDesc){
if (isbookDesc.innerText == ""){
const eDiv = document.getElementById("editorialReviews_feature_div")
if (eDiv) d1 = eDiv.innerText.replace(/\n/g,"\n>")
}else{
var d1 = isbookDesc.innerText.replace(/\n/g,"\n>").replace("続きを読む","")
}
}else{
const probookDesc = document.getElementById("productDescription_feature_div")
if (probookDesc){
var decsdocP = document.getElementsByClassName("pInfoTabCExpander-content");
var d1 = decsdoc.innerText.replace(/\n/g,"\n>")
}
}
//書影の処理
var image=document.getElementById("landingImage");
if (!image) var image = document.getElementById("ebooksImgBlkFront");
var imageurl = image.getAttribute("src");
//著者情報の処理
var pub = [];
var c = document.getElementsByClassName('author');
for (g = 0; g < c.length ;g++){
var at = cg.innerText.replace(/\r?\n/g, '').replace(/,/,''); var pu = at.match(/\(.+\)/);
var ct = at.replace(/\(.+\)/,'').replace(/ /g,'');
pub.push(pu + ' + ct.trim() + '');
}
var body = encodeURIComponent(lines);
})();