当" no"窗口不会关闭进入?使用Javascript

时间:2017-09-01 22:12:48

标签: javascript

有人可以帮我找到代码中的错误吗?当" 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";
   };
};

2 个答案:

答案 0 :(得分:0)

脚本只能关闭脚本打开的窗口。您无法关闭加载脚本的主窗口。

答案 1 :(得分:0)

Window.close() on MDN

  

仅允许为打开的窗口调用此方法   通过使用window.open()方法的脚本。如果窗口不是   由脚本打开,出现类似于此错误的错误   console:脚本可能无法关闭脚本未打开的窗口。

这是出于安全原因。如果您正在浏览网页,我确定您不会喜欢它,并且在点击reddit帖子中的随机链接后,您的窗口会突然关闭以及所有后退历史记录。

  

关闭当前窗口

     

过去,当你调用window对象的close()方法时   直接,而不是在窗口实例上调用close()   浏览器关闭了最前面的窗口,无论你的脚本是否创建了它   窗口与否。这已不再是这种情况;出于安全原因,   脚本不再允许关闭他们没有打开的窗口。   (Firefox 46.0.1:脚本无法关闭窗口,它们没有打开)