Files
nostr-connect/extension/content-script.js
2026-04-08 11:28:39 +07:00

37 lines
990 B
JavaScript

import browser from 'webextension-polyfill'
const EXTENSION = 'nostrconnect'
// inject the script that will provide window.nostr
const script = document.createElement('script')
script.setAttribute('async', 'false')
script.setAttribute('type', 'text/javascript')
script.setAttribute('src', browser.runtime.getURL('nostr-provider.js'))
document.head.appendChild(script)
// listen for messages from that script
window.addEventListener('message', async (message) => {
if (message.source !== window) return
if (!message.data) return
if (!message.data.params) return
if (message.data.ext !== EXTENSION) return
// pass on to background
var response
try {
response = await browser.runtime.sendMessage({
type: message.data.type,
params: message.data.params,
host: location.host
})
} catch (error) {
response = { error }
}
// return response
window.postMessage(
{ id: message.data.id, ext: EXTENSION, response },
message.origin
)
})