我正在使用processing.js
开发基于网络的游戏,我的问题与用于管理浏览器窗口的纯JavaScript代码有关。
游戏是小型浏览器窗口(200px * 200px)的迷宫,每个边界可以是墙壁或通往另一个窗口的通道。我的问题是,如果我关闭窗口我来自那时我试图回来它不会重新打开,即使我使用之前使用的相同功能。
我在这里运行了一个git repo:GitHub - TheMidst。
如果您想重现“错误”:
从github中提取代码:
index.html
(在您最喜欢的浏览器中,我使用chrome)。start button -> level0.html
打开。canvas->
右侧的右侧
level1.html
打开。steps -> level0.html
仍然打开。level1.html
,它不会再生成
... =>这是我的问题。/ js - >包含一个windowScripts.js,它通过函数处理窗口的打开和关闭,这是我的窗口管理器的核心,它是错误的。
/ levels - >将每个级别包含为html页面。
/ pd - >包含游戏的声音作为Pure-Data补丁(是的!)
游戏还远没有完成,所以一切都远非完美。任何帮助将不胜感激。
干杯。
编辑添加一些代码
打开我使用的弹出窗口:popUp(1); // 1是我要打开的关卡数。
这与这个js函数有关
function popUp(winNum){
var windowFeatures = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,left="+(winVars[winNum][0])+",top="+(winVars[winNum][1])+",width="+winVars[winNum][2]+",height="+winVars[winNum][3];
windows[winNum] = window.open( "level"+winNum+".html", "myWindow"+winNum, windowFeatures);
windows[winNum].moveTo(winVars[winNum][0],winVars[winNum][1]);
}
我的所有Windows属性都存储在数组中
关闭我使用的窗口:closeWindows(0); // 0是我要关闭的窗口号。
function closeWindows(winNum2){
setTimeout(widows [winNum2] = window.close(),50); }
实际上我在父窗口等之间有点混乱......
使用“window.opener.popUp(myPopup)”确实修复了问题
对github repo进行了一些更改,如果你遇到同样的问题,你仍然可以参考github repo。
干杯
答案 0 :(得分:0)
作为一般规则,使用多个浏览器窗口是一个坏主意,因为它与各种浏览器恶意软件使用的界面完全相同,例如弹出窗口和弹出窗口。事实上,完全有可能这就是为什么你会得到你所看到的行为。
相反,由于您需要多个图块,因此只需使用绝对定位的div
元素。