ActivityPub Viewer

A small tool to view real-world ActivityPub objects as JSON! Enter a URL or username from Mastodon or a similar service below, and we'll send a request with the right Accept header to the server to view the underlying object.

Open in browser →
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "ostatus": "http://ostatus.org#", "atomUri": "ostatus:atomUri", "inReplyToAtomUri": "ostatus:inReplyToAtomUri", "conversation": "ostatus:conversation", "sensitive": "as:sensitive", "toot": "http://joinmastodon.org/ns#", "votersCount": "toot:votersCount", "Hashtag": "as:Hashtag" } ], "id": "https://social.vivaldi.net/users/eklem/statuses/114057195592268175", "type": "Note", "summary": null, "inReplyTo": null, "published": "2025-02-24T05:24:48Z", "url": "https://social.vivaldi.net/@eklem/114057195592268175", "attributedTo": "https://social.vivaldi.net/users/eklem", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://social.vivaldi.net/users/eklem/followers" ], "sensitive": false, "atomUri": "https://social.vivaldi.net/users/eklem/statuses/114057195592268175", "inReplyToAtomUri": null, "conversation": "tag:vivaldi.net,2025-02-24:objectId=249004742:objectType=Conversation", "content": "<p>JavaScript question:</p><p>For a browser extension content script to recognize a page change in a SPA, is there a good alternative to:</p><p>window.navigation.addEventListener(&#39;navigate&#39;, (event) =&gt; {<br /> // do stuff when page changes<br />})</p><p>Need to work in Firefox and Safari in addition to Chrome/Vivaldi.</p><p><a href=\"https://social.vivaldi.net/tags/JavaScript\" class=\"mention hashtag\" rel=\"tag\">#<span>JavaScript</span></a> <a href=\"https://social.vivaldi.net/tags/browser\" class=\"mention hashtag\" rel=\"tag\">#<span>browser</span></a> <a href=\"https://social.vivaldi.net/tags/extension\" class=\"mention hashtag\" rel=\"tag\">#<span>extension</span></a> <a href=\"https://social.vivaldi.net/tags/SPA\" class=\"mention hashtag\" rel=\"tag\">#<span>SPA</span></a> <a href=\"https://social.vivaldi.net/tags/Firefox\" class=\"mention hashtag\" rel=\"tag\">#<span>Firefox</span></a> <a href=\"https://social.vivaldi.net/tags/Chrome\" class=\"mention hashtag\" rel=\"tag\">#<span>Chrome</span></a> <a href=\"https://social.vivaldi.net/tags/Safari\" class=\"mention hashtag\" rel=\"tag\">#<span>Safari</span></a> <a href=\"https://social.vivaldi.net/tags/Vivaldi\" class=\"mention hashtag\" rel=\"tag\">#<span>Vivaldi</span></a></p>", "contentMap": { "en": "<p>JavaScript question:</p><p>For a browser extension content script to recognize a page change in a SPA, is there a good alternative to:</p><p>window.navigation.addEventListener(&#39;navigate&#39;, (event) =&gt; {<br /> // do stuff when page changes<br />})</p><p>Need to work in Firefox and Safari in addition to Chrome/Vivaldi.</p><p><a href=\"https://social.vivaldi.net/tags/JavaScript\" class=\"mention hashtag\" rel=\"tag\">#<span>JavaScript</span></a> <a href=\"https://social.vivaldi.net/tags/browser\" class=\"mention hashtag\" rel=\"tag\">#<span>browser</span></a> <a href=\"https://social.vivaldi.net/tags/extension\" class=\"mention hashtag\" rel=\"tag\">#<span>extension</span></a> <a href=\"https://social.vivaldi.net/tags/SPA\" class=\"mention hashtag\" rel=\"tag\">#<span>SPA</span></a> <a href=\"https://social.vivaldi.net/tags/Firefox\" class=\"mention hashtag\" rel=\"tag\">#<span>Firefox</span></a> <a href=\"https://social.vivaldi.net/tags/Chrome\" class=\"mention hashtag\" rel=\"tag\">#<span>Chrome</span></a> <a href=\"https://social.vivaldi.net/tags/Safari\" class=\"mention hashtag\" rel=\"tag\">#<span>Safari</span></a> <a href=\"https://social.vivaldi.net/tags/Vivaldi\" class=\"mention hashtag\" rel=\"tag\">#<span>Vivaldi</span></a></p>" }, "updated": "2025-02-24T05:25:09Z", "attachment": [], "tag": [ { "type": "Hashtag", "href": "https://social.vivaldi.net/tags/javascript", "name": "#javascript" }, { "type": "Hashtag", "href": "https://social.vivaldi.net/tags/browser", "name": "#browser" }, { "type": "Hashtag", "href": "https://social.vivaldi.net/tags/extension", "name": "#extension" }, { "type": "Hashtag", "href": "https://social.vivaldi.net/tags/spa", "name": "#spa" }, { "type": "Hashtag", "href": "https://social.vivaldi.net/tags/firefox", "name": "#firefox" }, { "type": "Hashtag", "href": "https://social.vivaldi.net/tags/chrome", "name": "#chrome" }, { "type": "Hashtag", "href": "https://social.vivaldi.net/tags/safari", "name": "#safari" }, { "type": "Hashtag", "href": "https://social.vivaldi.net/tags/vivaldi", "name": "#vivaldi" } ], "replies": { "id": "https://social.vivaldi.net/users/eklem/statuses/114057195592268175/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://social.vivaldi.net/users/eklem/statuses/114057195592268175/replies?only_other_accounts=true&page=true", "partOf": "https://social.vivaldi.net/users/eklem/statuses/114057195592268175/replies", "items": [] } }, "likes": { "id": "https://social.vivaldi.net/users/eklem/statuses/114057195592268175/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://social.vivaldi.net/users/eklem/statuses/114057195592268175/shares", "type": "Collection", "totalItems": 1 } }