<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DOM Manipulation on Shadowfish</title><link>https://shadowfish.night-tower.net/tags/dom-manipulation/</link><description>Recent content in DOM Manipulation on Shadowfish</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>© 2026 Shadowfish</copyright><lastBuildDate>Tue, 21 Jul 2026 11:03:00 +0200</lastBuildDate><atom:link href="https://shadowfish.night-tower.net/tags/dom-manipulation/index.xml" rel="self" type="application/rss+xml"/><item><title>Inside Birdie: Injecting JS &amp; Manipulating DOM in Runtime</title><link>https://shadowfish.night-tower.net/post/birdie-dom-manipulation-chrome-extension/</link><pubDate>Wed, 01 Jan 2020 12:00:00 +0100</pubDate><guid>https://shadowfish.night-tower.net/post/birdie-dom-manipulation-chrome-extension/</guid><description>&lt;p&gt;When you are managing dozens of clients who refuse to install your chat widget correctly, you either waste hours debugging their code or you build a tool to inject it yourself. This is the story of &lt;strong&gt;Birdie&lt;/strong&gt;.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://shadowfish.night-tower.net/post/birdie-dom-manipulation-chrome-extension/featured.png"/></item></channel></rss>