CocoonのAmazonリンク用ブックマークレットがChromeのアプデで動かない

タイトルの通りの備忘録になります。

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)も設定しておきます。

あとは、ショートコードを作成したいページでスクリプトを有効化してページを再読込すれば、今まで通り作成できます。

コメント

タイトルとURLをコピーしました