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.
{
"@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('navigate', (event) => {<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('navigate', (event) => {<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
}
}