feat(slimmer): preserve original styles in a window object

This commit is contained in:
Ayo Ayco 2025-08-27 13:14:06 +02:00
parent cb1a22d5fb
commit 11e9b7cc4f
2 changed files with 14 additions and 11 deletions

View file

@ -1 +1 @@
javascript:(()=%3E{const%20el=document.querySelector(%22body%22);const%20id=document.URL;const%20originalWidth=`__ayo__origininal-width-${id}__`;const%20originalMargin=`__ayo__origininal-margin-${id}__`;const%20toggle=`__ayo__slimmer-toggle-${id}__`;if(window[originalWidth]===undefined){window[originalWidth]=el.style.width;}if(window[originalMargin]===undefined){window[originalMargin]=el.style.margin;}if(!window[toggle]){el.style.width=%22700px%22;el.style.margin=%220%20auto%22;}else{el.style.width=window[originalWidth];el.style.margin=window[originalMargin]}window[toggle]=!window[toggle]})()
javascript:(() => {const el=document.querySelector("body");const id=document.URL;const toggle=`__ayo__slimmer-toggle-${id}__`;const originalStyles=`__ayo__original-styles-${id}__`;if(window[originalStyles]===undefined)window[originalStyles]={width:el.style.width,margin:el.style.margin,overflowX:el.style.overflowX};if(!window[toggle]){el.style.width="700px";el.style.margin="0 auto";el.style.overflowX="auto"}else{el.style.width=window[originalStyles].width;el.style.margin=window[originalStyles].width;el.style.overflowX=window[originalStyles].overflowX}window[toggle]=!window[toggle]})()

View file

@ -1,16 +1,18 @@
/**
* The bookmarklet will toggle between normal and slimmed width (700px) each time you click it. It preserves the original styles when switching back.
*/
() => {
const el = document.querySelector("body");
const id = document.URL;
const originalWidth = `__ayo__origininal-width-${id}__`;
const originalMargin = `__ayo__origininal-margin-${id}__`;
const toggle = `__ayo__slimmer-toggle-${id}__`;
const originalStyles = `__ayo__original-styles-${id}__`;
if (window[originalWidth] === undefined) {
window[originalWidth] = el.style.width;
}
if (window[originalMargin] === undefined) {
window[originalMargin] = el.style.margin;
if (window[originalStyles] === undefined) {
window[originalStyles] = {
width: el.style.width,
margin: el.style.margin,
overflowX: el.style.overflowX,
};
}
if (!window[toggle]) {
@ -19,8 +21,9 @@
el.style.overflowX = "auto";
console.log({ toggle: window[toggle] });
} else {
el.style.width = window[originalWidth];
el.style.margin = window[originalMargin];
el.style.width = window[originalStyles].width;
el.style.margin = window[originalStyles].width;
el.style.overflowX = window[originalStyles].overflowX;
}
console.log({ toggle: window[toggle] });