Добрый день, уважаемые участники сообщества. Когда я программировал на Java, я столкнулся с этой проблемой. Я добавлял HTML файл с кодом в ActivityMain.xml и получилось, что там не работают alertы, confirmы и promptы. Тогда я решил сделать эти функции сам, а-ля
function alert(message){...}. У меня получилось создать свои всплывающие окна, при этом все работало при стандартном вызове функции. Но когда я вставил это в свой код игры-раскраски, то хром начал ругаться
Uncaught TypeError: Cannot set property 'innerHTML' of null
.
Вот что у меня получилось:
var confirmR = undefined; //переменная результата конфирма
var answerR = undefined; //переменная результата промпта
localStorage.visit; //объявление кэша
//эта функция проверяет значение переменной кэша, и если оно 1, то открыть страницу как обычно, если 0 - спрашивать про Добро пожаловать в игру, пока не нажмут ОК, иначе вызвать функцию заново.
function hello(){
if(localStorage.visit){
}
else{
ask();
}
}
function ask(){
confirm("Good day! Welcome to the Game!");
if(confirmR){
localStorage.visit = true;
}
else{
ask();
}
}
hello();
//функция закрытия всплывающего окна.
//она ищет див с окном и убирает css класс .show, а еще удаляет из него данные
function hide(){
document.getElementById("box").innerHTML = "";
document.getElementById("box").classList.remove("show");
}
function alert(message){
document.getElementById("box").innerHTML = message + "<br> <a onclick='hide();'> Ok</a>";
document.getElementById("box").classList.add("show");
}
function confirm(message){
document.getElementById("box").innerHTML = message + "<br> <a onclick='cancel();' >Cancel</a> <a onclick='ok();' >Ok</a>";
document.getElementById("box").classList.add("show");
}
//если нажали ок в конфирме
function ok(){
confirmR = true;
hide();
}
function cancel(){
confirmR = false;
hide();
}
function prompt(message){
document.getElementById("box").innerHTML = message + "<br> <input type='text' id='answer'/> <a onclick='answer();' > Submit</a>";
document.getElementById("box").classList.add("show");
}
//сохраняет в результат введенный текст
function answer(){
answerR = document.getElementById("answer").value;
hide();
}
В чём проблема?