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 are viewing a single thread.
View all comments
2 points

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)

permalink
report
reply
1 point
*

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);

will it affect performance?

permalink
report
parent
reply
1 point

I tried it a bit, but now it repeatedly activates the extension and lags the browser.

permalink
report
parent
reply
1 point
*

You may want to give a go at my implementation of MutationObserver for lemmy-keyboard-navigation --> https://github.com/vmavromatis/Lemmy-keyboard-navigation/blob/main/lemmy-keyboard-navigation.user.js#L636-L652 I did have to use onload for the initial page load though :/

End result -> https://addons.mozilla.org/en-US/firefox/addon/lemmy-keyboard-navigation/

permalink
report
parent
reply

FF addons&extensions

!firefox_addons@lemmy.ml

Create post

Share your Firefox extensions or search tools.

Community stats

  • 1

    Monthly active users

  • 24

    Posts

  • 7

    Comments

Community moderators