unarist (17)

ログインした状態で実行してね

(function(){var settings=JSON.parse($('#initial-state').text()).settings;settings.onboarded=false...

(function(){const xhr=new XMLHttpRequest();xhr.open("GET",location.href);xhr.responseType="blob";...

割といける。

((r=window.getSelection(),s=String(r),p=r.anchorNode,e='',a,t)=>{if(p.nodeType==3)p=p.parentNode;...

全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\')">
  </div>'`.slice(1,-...

これ自体は何もしないよ。

var LET_ID="hoo";`.${LET_ID}div pre .hoge p:before{border:1px solid gray;content:"pre ${LET_ID} p...

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(){loc...

(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');