全Textノードを舐めてそれらしい文字列をデコードしてみるという大胆さ
(()=>{const iter=document.createNodeIterator(document.body,NodeFilter.SHOW_TEXT);while((node=iter...
TL;DR: ` のすぐ内側に " or ' を入れる。内部でそれらを使う時はエスケープ。
{let LET_ID="foo";alert(`'<div class="${LET_ID}" onclick="alert('test')">\n </div>'`.slice(1,-1))}
これ自体は何もしないよ。
Range.prototype.getClientRectsで表示範囲が取れることを利用したデモ
(function(){const MASK="range-visualizer-mask";const MASK_ELEM=`${MASK}-elem`;const MASK_NODE=`${...
お好みの Content-Security-Policy を追加して、制限を厳しくしてみよう
(function(){let csp=doc.createElement("meta");csp.httpEquiv="Content-Security-Policy";csp.content...
ブックマークレット開発のお供に
onerror=alert;
delete selected node just once
(function(){'use strict';const options={passive:false,capture:true};function deleteOnce(e){e.stop...
(function(){'use strict';const tweet_box=document.querySelector('.tweet_box');const clearDecorati...
(function(){function handler(e){e.target.parentNode.removeChild(e.target);document.removeEventLis...
.packed.jsを匿名関数で囲ってdataURI化して遷移
var xhr=new XMLHttpRequest;xhr.open('GET',location.href+'.packed.js');xhr.onload=function(){locat...
(function(images){d=window.open().document;for(i=0;i<images.length;++i){x=is[i];if(x.height<100)c...
(function(images){d=window.open().document;for(i=0;i<images.length;++i){x=is[i];if(x.height<100)c...
(function(images){for(i=0;i<images.length;++i){img=images[i];if((link=img.parentElement)&&link.hr...
maximum-scaleを消したいだけ
document.querySelector("meta[name=viewport]").setAttribute('content','width=device-width');