FirefoxとBraveの両方において、ブックマークツールバーのブックマークレットのJavaScriptで[計算処理をする]とセキュリティに引っかかりJavaScriptが実行できない?

  • JavaScriptのうち、使えない関数が多い、ということらしい。

FirefoxのShortcutKey2URLではJavaScriptで[計算処理をする]ことがセキュリティに引っかからず、JavaScriptが実行できる

  • FirefoxのShortcutKey2URLを使うのがよい。
  • Brave(Chromium)では、セキュリティ上の制約が多く、思ったようにJavaScriptが使えなくしてある。利便性として終わっている。

URLを取得しリンクコードを生成するブックマークレット

FirefoxとBraveのブックマークツールバーのブックマークレットとして正常動作

javascript:(function(){try{var h=window.location.href,t=document.title,art=document.querySelector('article.js-entryWrapper');if(art){var title=art.getAttribute('data-unique-entry-title');if(!title){alert('No title');return;}var bn=document.querySelector('title[data-react-helmet="true"]')?.textContent||t.split(' | ')[1]||'Blog';var lt=(title+' | '+bn).normalize('NFC').replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFE00-\uFE0F\uFEFF]/g,'').replace(/[\r\n]/g,'▼');prompt('HTML','■<a href="'+h+'" target="_blank" rel="nofollow">'+lt.replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/'/g,'&apos;').replace(/</g,'&lt;').replace(/>/g,'&gt;')+'</a><br>');return;}var titleClean=t.normalize('NFC').replace(/ヨドバシ\.com - (.*?) 通販【全品無料配達】/g,'$1').replace(/ - YouTube/g,'').replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFE00-\uFE0F\uFEFF]/g,'').replace(/[\r\n]/g,'▼');var u=h;if(u.indexOf('youtube.com/watch')!==-1||u.indexOf('youtu.be/')!==-1){var vMatch=u.match(/[?&]v=([^&]+)/)||u.match(/youtu\.be\/([^?&]+)/);var tMatch=u.match(/[?&]t=([^&]+)/);var tStr='00h00m00s';if(tMatch){tStr=tMatch[1];}u='//www.youtube.com/watch?v='+(vMatch?vMatch[1]:'')+'&t='+tStr;}else{u=u.replace(/http:\/\/localhost:1313/g,'').replace(/https:\/\/benkyosukisuki.com/g,'').replace(/https:\/\/netjuku.net/g,'').replace(/\&stick=([^&|"]+)/g,'').replace(/\&ved=([^&|"]+)/g,'').replace(/\&biw=([^&|"]+)/g,'').replace(/\&bih=([^&|"]+)/g,'').replace(/\?frm_src=thumb_module/g,'').replace(/time_continue=\d+\&/g,'');u=u.replace(/\/\/www.amazon.co.jp\/.*\/dp\/(.{10}).*/g,'//www.amazon.co.jp/dp/$1').replace(/\/\/vimeo.com\/([\w/:%#\$&\?\(\)~\.=\+\-]+)/g,'//vimeo.com/$1');}prompt('HTML','■<a href="'+u+'" target="_blank" rel="nofollow">'+titleClean.replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/'/g,'&apos;').replace(/</g,'&lt;').replace(/>/g,'&gt;')+'</a><br>');}catch(e){alert('Error: '+e.message);}})();

※今日は、お父さんのお葬式です。

FirefoxのShortcutKey2URLのJavaScriptとして正常動作|YouTubeの分単位の時刻をh:m:sで表示

javascript:(function(){const article=document.querySelector('article.js-entryWrapper');if(article){const title=article.getAttribute('data-unique-entry-title');if(!title){alert('Could not find the entry title.');return;}const url=location.href;let blogName=document.querySelector('title[data-react-helmet="true"]')?.textContent||(window.blogMap&&Object.keys(window.blogMap)[0]?window.blogMap[Object.keys(window.blogMap)[0]].blog_title:'')||document.title.split(' | ')[1]||'Unknown Blog';blogName=blogName.trim().replace(/\u3000/g,' ');const linkText=`${title} | ${blogName}`.normalize('NFC').replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFE00-\uFE0F\uFEFF]/g,'').replace(/[\r\n]/g,'▼');const html=`■<a href="${url}" target="_blank" rel="nofollow">${linkText.replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/'/g,'&apos;').replace(/</g,'&lt;').replace(/>/g,'&gt;')}</a><br>`;prompt('Copy the following link HTML:',html);}else{var t=document.title.normalize('NFC').replace(/ヨドバシ\.com - (.*?) 通販【全品無料配達】/g,'$1').replace(/ - YouTube/g,'').replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFE00-\uFE0F\uFEFF]/g,'').replace(/[\r\n]/g,'▼').replace(/https?:\/\/[^\s]+/g,function(m){return m.replace(/:/g,':');});var u=location.href.replace(/http:\/\/localhost:1313/g,'').replace(/https:\/\/benkyosukisuki.com/g,'').replace(/https:\/\/netjuku.net/g,'').replace(/search\?.*\&q=/g,'search?&q=').replace(/\&stick=([^&|"]+)/g,'').replace(/\&ved=([^&|"]+)/g,'').replace(/\&biw=([^&|"]+)/g,'').replace(/\&bih=([^&|"]+)/g,'').replace(/\?frm_src=thumb_module/g,'').replace(/time_continue=\d+\&/g,'');u=u.replace(/[?&]t=(\d+)(?:s)?/,function(match,s){var sec=parseInt(s,10),h=String(Math.floor(sec/3600)).padStart(2,'0'),m=String(Math.floor((sec%3600)/60)).padStart(2,'0'),sc=String(sec%60).padStart(2,'0');return `&t=${h}h${m}m${sc}s`;});u=u.replace(/\/\/(?:www\.)?youtube\.com\/watch\?(?:.*&)?v=(.{11})(?:&.*)?/,function(m,id){var qIdx=location.href.indexOf('?'),tMatch=qIdx!==-1?location.href.slice(qIdx).match(/[?&]t=(\d+)(?:s)?/):null;var tStr='00h00m00s';if(tMatch){var sec=parseInt(tMatch[1],10),h=String(Math.floor(sec/3600)).padStart(2,'0'),mn=String(Math.floor((sec%3600)/60)).padStart(2,'0'),sc=String(sec%60).padStart(2,'0');tStr=`${h}h${mn}m${sc}s`;}return`//www.youtube.com/watch?v=${id}&t=${tStr}`;}).replace(/\/\/youtu\.be\/(.{11})(?:\?t=(\d+))?(?:&.*)?/g,function(m,id,s){var tStr='00h00m00s';if(s){var sec=parseInt(s,10),h=String(Math.floor(sec/3600)).padStart(2,'0'),mn=String(Math.floor((sec%3600)/60)).padStart(2,'0'),sc=String(sec%60).padStart(2,'0');tStr=`${h}h${mn}m${sc}s`;}return`//www.youtube.com/watch?v=${id}&t=${tStr}`;});u=u.replace(/\/\/www.amazon.co.jp\/.*\/dp\/(.{10}).*/g,'//www.amazon.co.jp/dp/$1').replace(/\/\/vimeo.com\/([\w/:%#\$&\?\(\)~\.=\+\-]+)/g,'//vimeo.com/$1#t=00m00s').replace(/moz\-extension:(.*?)(.{24})$/g,'https://www.youtube.com/channel/$2');prompt('HTML link','■<a href="'+u+'" target="_blank" rel="nofollow">'+t.replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/'/g,'&apos;').replace(/</g,'&lt;').replace(/>/g,'&gt;')+'</a><br>');}})();

※今日は、お父さんのお葬式です。