有人可以帮我找到代码中的错误吗?当" no"窗口不会关闭在完成比赛后输入,我似乎无法找到错误。 对于上下文:我试图制作战舰游戏并使其与javascript交互。当船被击中时,用户应该可以选择再次玩(窗口重新加载就好了)如果用户决定他不想再玩,他只需输入"不&# 34;窗口关闭但由于某种原因不起作用。无论我做什么,我似乎无法找到错误。有经验的人有没有想法?
var table = document.getElementById("buttons");
var len_board = document.getElementsByClassName("tr").length;
var button = document.getElementsByClassName("location")
//Places ships on the board randomly
function placeShips(len_board) {
window.random_row = Math.floor(Math.random() * (len_board - 1)) + 1;
window.random_column = Math.floor(Math.random() * (len_board - 1)) + 1;
};
//Save users choice and determine if ship is hit
function getId(element) {
var chosen_row = element.parentNode.parentNode.rowIndex
var chosen_column = element.parentNode.cellIndex
if ((random_row == chosen_row) && (random_column == chosen_column)) {
element.style.backgroundColor = 'red';
element.style.borderColor = 'red';
element.textContent = "X";
alert("you hit my ship");
var answer = prompt("Would you like to play again? Enter 'Yes' for
yes and 'No' for no:");
var answer = answer.toLowerCase();
if (answer == "yes") {
location = location;
}
else if (answer == "no") {
window.close();
}
else {
var reply = prompt("I'm sorry, " + answer + " is not a valid
input. Please try again: ");
var reply = reply.toLowerCase();
if (reply == "no") {
window.close();
}
else if (answer == "yes") {
location = location;
}
else {
window.close();
};
};
}
else {
element.style.backgroundColor = "#a9c8f9";
element.style.borderColor = "#a9c8f9";
};
};
答案 0 :(得分:0)
脚本只能关闭脚本打开的窗口。您无法关闭加载脚本的主窗口。
答案 1 :(得分:0)
仅允许为打开的窗口调用此方法 通过使用window.open()方法的脚本。如果窗口不是 由脚本打开,出现类似于此错误的错误 console:脚本可能无法关闭脚本未打开的窗口。
这是出于安全原因。如果您正在浏览网页,我确定您不会喜欢它,并且在点击reddit帖子中的随机链接后,您的窗口会突然关闭以及所有后退历史记录。
关闭当前窗口
过去,当你调用window对象的close()方法时 直接,而不是在窗口实例上调用close() 浏览器关闭了最前面的窗口,无论你的脚本是否创建了它 窗口与否。这已不再是这种情况;出于安全原因, 脚本不再允许关闭他们没有打开的窗口。 (Firefox 46.0.1:脚本无法关闭窗口,它们没有打开)