Hacker News new | ask | show | jobs
by Featherknight 716 days ago
Great script idea! keeping this. Note, this does not prevent the initial loading of the embed itself, just replaces the embed with the link. The total transfer size of a page is still the same. If only there was a way to prevent the loading AND keep the link replacement.
1 comments

Thanks. Despite being Not A Project I did edit to add optional image previews and reuse the regex object, so grab the final version if you want.

I should have mentioned this is paired with uBlock Origin to block Youtube iframes (and indeed all iframes) globally. At the time I was writing it to unbreak embedded videos.

https://github.com/gorhill/uBlock/wiki/Dynamic-filtering:-qu...

https://github.com/gorhill/uBlock/wiki/Blocking-mode

https://github.com/gorhill/uBlock/wiki/Blocking-mode:-medium...

From uBO My Rules tab:

  * youtube-nocookie.com * block
  * youtube.com * block
  * ytimg.com * block
  youtube.com youtube.com * noop
  youtube.com ytimg.com * noop
To block all iframes (except sites you whitelist, see links above):

  * * 3p-frame block
Oh wow, I was just thinking that optional image previews would make this great, good stuff! The preview image doesn't auto-fit nicely in all layouts(using sonyalpharumors.com to test; works great for header banner embeds but potentially awkward sizing for post embeds) but I think that's due to the fixed image size and you not messing with the DOM outside of adding the img to it. Will you post this somewhere like github or greasyfork?

I do have the 3rd party iframes blocked globally in uBo Firefox and works great with your script to replace the placeholder elements but Safari lacks an alternative sadly afaik

Yeah I should put this somewhere! In the meantime, right after img.alt =... you can add

  // improve styling
  img.className = frame.className;
  img.id = frame.id;
  img.style.width = frame.width +"px";
That last line is a hack (eg resizing), but it's required to make the test website work since annoyingly their CSS uses :is(frame).