Remember that simulators are composed of two different parts. There's a server side and a client side component. Servers are what you connect to, and they handle the manipulation of users and most of the battle engine. Clients are programs you download that communicate with the server, and they are the ones that show you all the graphical pretty stuff. Creating a "browser version" of a simulator is a matter of making a new client that works through the browser and connects to the simulator. This is feasibly possible, for example look at
mibbit. This is a website that functions as a client for IRC, IRC itself being a TCP protocol. Interestingly enough, both PokeLab and Pokemon Online are implemented using TCP, so yes it is technically possible to write a browser program that does this job.
An interesting alternative would be a pure Javascript implementation that uses socket.io. The server would then listen to requests from both the TCP and websocket simultaneously and would be able to support guests from both sources. That's a lot of work, but it would be fairly interesting to see it get done.