I’d like a local process on my machine to be able to trigger javascript in a specific tab in my local Google Chrome browser. The tab is not connecting to localhost, but to another known domain.
This may sound a bit weird, but what I’m actually trying to do is allow my in-browser music player to be controlled via global OS keyboard shortcuts, so I don’t have to go to my tab in Chrome to pause or skip a track, for example.
I haven’t been able to find any references to this type of behavior anywhere. Here are some solutions I’ve though of so far:
- I tried looking at the Chrome Extensions APIs, and found the NPAPI Plugins which seem to allow javascript to trigger an external process, but I’m not sure if I could get it to work in the opposite way?
- If directly triggering javascript is not possible, I may look into opening an HTML5 WebSocket to a tiny localhost webserver that can push control messages to the browser. I’ve read that WebSockets can function cross-domain in this way.
- If both of the above don’t work, I could always have a localhost process push to the remote server, which can forward the message back to my Chrome tab via WebSockets or another callback method. I really hope I can avoid this.
Are there features of Chrome extensions I’m overlooking that can be triggered externally? Or will a NPAPI plugin be able to do what I want? Or is there a better solution for this somehow? These all seem a little needlessly complex for such a simple task.
I would use the NPAPI Plugin becasue it is the best one too use for the thing your doing.
Good luck completing it.