Download Image Bookmarklet

by sammy

HTML

<script id="bookmarklet" type="plain/text">javascript:(() => { var body = document.body; var element = (t) => document.createElement(t); var putIn = (p, c) => p.appendChild(c); var takeOut = (p, c) => p.removeChild(c); var on = (el, ev, f, c = false) => el.addEventListener(ev, f, c); var style = (el, styles) => Object.entries(styles).map(([prop, val]) => el.style[prop] = val); function displayImgs(imgs) { var links = imgs.map(createLink); var overlay = element('div'); style(overlay, { position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, display: 'flex', 'flex-direction': 'column', 'align-items': 'center', 'justify-content': 'center', }); var imgContainer = element('div'); style(imgContainer, { flex: '1', display: 'flex', 'flex-direction': 'row', 'align-items': 'center', 'justify-content': 'space-around', 'flex-flow': 'wrap', }); links.forEach(link => putIn(imgContainer, link)); var iframe = element('iframe'); style(iframe, { position: 'fixed', top: 0, left: 0, width: '100%', height: '100%', background: 'rgba(0,0,0,.8)', zIndex: 1000, }); putIn(body, iframe); putIn(iframe.contentDocument.body, overlay); on(iframe.contentWindow, 'click', () => { setTimeout(() => takeOut(body, iframe), 100); }); if (links.length === 1) { var link = links[0]; if (link.href === location.href) { downloadLink(link.href) } else { window.open(link.href); } takeOut(body, iframe); } else if (links.length === 0) { let message = element('p'); style(message, { color: 'black', background: 'white', padding: '1em', }); message.textContent = "No large images found on page. Try again with a large photo on page (300 pixels width)."; putIn(overlay, message); } else { let message = element('p'); style(message, { color: 'black', background: 'white', padding: '1em', }); message.textContent = "Pick image."; putIn(overlay, message); putIn(overlay, imgContainer); } } function createLink(img) { var link = element('a'); var icon = element('img'); var url = window.location.pathname; var filename =...

JavaScript

let script = document.querySelector("#bookmarklet")
let anchor = document.querySelector("#link")
anchor.setAttribute('href', script.textContent)


// Remove's Result Header bar
try {
  let header = window.parent.document.querySelector('header')
  let tabs = window.parent.document.querySelector('#tabs')
  let results = window.parent.document.querySelector('#tabs #result')
  header.parentNode.removeChild(header)
  tabs.style.marginTop = 0
  tabs.style.height = '100vh'
  results.style.height = '100vh'
}
catch (err) {

}