Javascript:引用弹出窗口时丢失的全局变量引用

时间:2014-04-09 22:09:51

标签: javascript html popup

我正在尝试通过javascript Web客户端与websocket服务器进行通信。在我的index.html中,我有这个代码:

    <script type="text/javascript">
        websocketClient = null
    </script>
    <script type="text/javascript" src="js/jWebSocket.js"></script>
    <script type="text/javascript" src="main.js"></script>
    <script type="text/javascript" src="ServerPlugin.js"></script>

我的main.js有这两个函数(等等):

function tempPopup() 
{

      var popupHeight = screen.height / 10 * 9;
      var popupWidth  = screen.width / 3;
      popup = window.open('popup.html', 'name-place', 'height='+popupHeight + ',width='+ popupWidth);
      popup.moveTo(screen.width / 2 - popupWidth/2, screen.height/2 - popupHeight/2);
      popup.focus();  
      websocketClient.sendResponse(400);
}

function transferReqToMain(quote) 
{
      alert("Request Transferred");
      websocketClient.sendResponse(400);
}

然后我的popup.html有这些声明:

    <script type="text/javascript" src="js/jWebSocket.js"></script>
    <script type="text/javascript" src="main.js"></script>
    <script type="text/javascript" src="ServerPlugin.js"></script>        
    <script type="text/javascript" src="popupInit.js"></script>

最后popupInit.js中有一个以这种方式执行的函数:

function sendOkResponse() 
{
    alert("Transferring Request");
    transferReqToMain(400);
};

现在当我在index.html中按下一个应该启动弹出窗口的按钮(函数tempPopup())时,websoocket.sendResponse()的代码执行得很好(我在sendresponse函数中有一个警告告诉我这个)一个新的弹出窗口也开始了。但是在弹出窗口中,如果我点击启动sendOkResponse()的按钮,首先我得到打印“传输请求”,然后我得到打印“请求转移”(这意味着transferReqToMain()正在执行)但是之后我的调用websocketClient.sendResponse()失败。

有人能指出我在这里做错了什么。

0 个答案:

没有答案