In the spirit of decentralization, I would like my decentralized application, a JavaScript application running in a user's browser, to be allowed to communicate with the Tezos node of their choice.
Because of CORS rules, JavaScript can only fetch data from the server that served it, or that server can act as proxy to communicate with other Tezos nodes, or a server with a CORS policy that allows it. According to this question, the browser JavaScript could also communicate with a tezos node that is run with those flags, but this would limit the app to communicating with Tezos nodes that have that setting.
Is there any other strategy to make a JavaScript program in the browser communicate directly with a Tezos node without going though the backend that served it?