タイトルの通りの備忘録になります。
2023/3/5のChromeのManifest V3アップデートに伴い、ブックマークレットが動かなくなっていました。
Bookmarklets are not supported since v2023.03.05 because of Manifest V3. For more details see https://developer.chrome.com/docs/extensions/mv3/mv3-migration/#executing-arbitrary-strings
今回はその対処法です。
結論としては、Chromeの拡張機能、ScriptAutoRunnerで動かします。
ScriptAutoRunnerをChromeにインストールしたら、以下のコードを貼り付けます。
(元のブックマークレットを少し変更しています。)
var host=location.host;
if(host=='www.amazon.co.jp'){
var titleElems=[document.getElementById('productTitle'),document.getElementById('ebooksProductTitle'),document.getElementById('aiv-content-title'),document.getElementById('title_feature_div')];
var title=titleElems.filter(v=>{return v!=null})[0].innerText.trim().replace(/[\[|\]]/g,'');
var matched=location.href.match(/(?:dp|o|gp|-|ASIN|product)\/(B[0-9A-Z]{9}|[0-9]{9}(?:X|[0-9]))/);
var asin=matched!=null?matched[1]:'';
var shortcode='[amazon asin="'+ asin +'" kw="' +title+ '" desc=""]'
}
else{
alert('Error:ブックマークレットのサポート範囲外のページです。')
}
if(shortcode){
if(asin){
if(shortcode=prompt('コピーしてください。',shortcode)){
var r=document.createRange();
var text=document.createTextNode(shortcode);
r.selectNode(document.body.appendChild(text));
window.getSelection().addRange(r);
document.execCommand('copy');
text.remove()
}
}
else alert('Error:コードが見つかりませんでした。')
}
スクリプト名や実行するホスト名(今回の場合はamazon.co.jp)も設定しておきます。
あとは、ショートコードを作成したいページでスクリプトを有効化してページを再読込すれば、今まで通り作成できます。
コメント