index.html Example File

standalone/index.html

  <!DOCTYPE html>
  <html>
      <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <script type="text/javascript" src="./qwebchannel.js"></script>
          <script type="text/javascript">
              //BEGIN SETUP
              function output(message) {
                  var output = document.getElementById("output");
                  output.innerHTML = output.innerHTML + message + "\n";
              }
              window.onload = function() {
                  if (location.search != "")
                      var baseUrl = (/[?&]webChannelBaseUrl=([A-Za-z0-9\-:/\.]+)/.exec(location.search)[1]);
                  else
                      var baseUrl = "ws://localhost:12345";

                  output("Connecting to WebSocket server at " + baseUrl + ".");
                  var socket = new WebSocket(baseUrl);

                  socket.onclose = function() {
                      console.error("web channel closed");
                  };
                  socket.onerror = function(error) {
                      console.error("web channel error: " + error);
                  };
                  socket.onopen = function() {
                      output("WebSocket connected, setting up QWebChannel.");
                      new QWebChannel(socket, function(channel) {
                          // make core object accessible globally
                          window.core = channel.objects.core;

                          document.getElementById("send").onclick = function() {
                              var input = document.getElementById("input");
                              var text = input.value;
                              if (!text) {
                                  return;
                              }

                              output("Sent message: " + text);
                              input.value = "";
                              core.receiveText(text);
                          }

                          core.sendText.connect(function(message) {
                              output("Received message: " + message);
                          });

                          core.receiveText("Client connected, ready to send/receive messages!");
                          output("Connected to WebChannel, ready to send/receive messages!");
                      });
                  }
              }
              //END SETUP
          </script>
          <style type="text/css">
              html {
                  height: 100%;
                  width: 100%;
              }
              #input {
                  width: 400px;
                  margin: 0 10px 0 0;
              }
              #send {
                  width: 90px;
                  margin: 0;
              }
              #output {
                  width: 500px;
                  height: 300px;
              }
          </style>
      </head>
      <body>
          <textarea id="output"></textarea><br />
          <input id="input" /><input type="submit" id="send" value="Send" onclick="javascript:click();" />
      </body>
  </html>