A firefox extension that displays How much Karma you have in Lemmy - yorunoken/LemmyKarmaCalculatorExtension
so I was making an extension for firefox where it calculates and displays a user's Karma. Now the extension works perfectly fine when you paste in your profile and go there, or if you refresh your profile. but if you go to the main menu of Lemmy, then back to your profile by clicking on your profile, the extension simply doesn't work.
You'll likely want to take a look at MutationObservers. That's the most modern way that I know of to handle SPAs like Lemmy. (Well, Lemmy is technically a hybrid in that the first load is done server-side, which is why your addon works when you refresh)
I ended up going primitive and used intervals to check if a particular div was visible:
function refreshExtension() { console.log("checking ", shown); const targetNode = document.getElementsByClassName("person-details")[0]; if (!shown && targetNode) { main(); } if (!targetNode) { shown = false; } } setInterval(refreshExtension, 200);