客户要求在弹出的子页面中调用tlwsa呼出。因为我们的demo只是为单页面的情形写的,所以不能直接用,要改造。
1 首先,唯一的tlwsa对象,不能放在TLWSADemo.js里生成了,要放在主页面webSocketAgent.html里面生成。
2 在新页面中(假设新页面是在webSocketAgent.html里用window.open打开的),通过 window.opener.tlwsa得到唯一的tlwsa对象。(这个其实就是在页面之间传递/共享对象/变量)
在子页面中,这样写:
<script src="TLWebSocketAgent.js"></script>
<script>
var authCode="tlwsab"; //验证码,必须与服务端配置的验证码相同,否则不能通过验证,无法登录到服务器
//alert("asdf");
//alert(window.opener.head);
//window.opener.openAndlogin("81.70.154.77",100001,1,-1);
var tlwsa=window.opener.tlwsa; //
</script>
<script src="TLWSADemo.js"></script>```
理论上这样就可以了,但是实际运行,报错,用F12调试页面,看到错误提示是:
blocked a frame with origin null from accessing
百度,得到的结果是:chrome的安全策略,本地文件不允许这样,但是在webserver上就没事。
安装python3.9,在网页目录下面启动一个httpserver:
python -m http.server
然后在浏览器地址栏输入:http://localhost:8000/webSocketAgent.html
测试OK