Javascript подтвердить действие с помощью document.write - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть функция javascript, которую я пытаюсь вызвать, когда подтвердится истина.Я использую document.write, потому что исходный документ представляет собой файл .js, а не html.

Перед выполнением истинного условия я хочу получить от пользователя подтверждение, что он уверен, что он хочет сбросить счетчик.

У меня есть две попытки - первая из которых возвращает true из false, но не вызывает функцию resetCookie () при истинном условии.

Вторая попытка, на мой взгляд, синтаксически некорректна, как кажется, ничего не делает.

1-я попытка:

document.write('<a href="" onclick="return alert(confirm(\'sure?\'));{resetCookie()}{};"><i>Reset counter</i></a>'); 

2-я попытка:

document.write("<a href='javascript: if (confirm('Continue?')) { alert('You chose true') } else { alert('You chose false.') }; void('')'>Reset counter</a>");

спасибо за помощь.

Ответы [ 3 ]

3 голосов
/ 30 ноября 2011

Почему бы вам просто не использовать функцию jscript verify ()?

if (confirm("sure?") == true){
   resetCookie();
}

Кстати, ваш тег A неверен (пока я буду игнорировать, что вы не можете использовать document.write, когда он уже запущен):

document.write('<a href="" onclick="if(confirm(\'sure?\')){resetCookie()};return false;"><i>Reset counter</i></a>'); 
1 голос
/ 30 ноября 2011

Предполагая, что вы включаете этот файл JavaScript в строку, и предполагая, что этот код запускается немедленно (например, он не находится в вызове функции, запускаемом после загрузки страницы), вы можете использовать document.write просто отлично, хотя в целом я бы избегал это.

Я бы также избегал помещать любую логику в обработчик DOM0 (onclick-style); вместо этого вызовите функцию:

document.write('<a href="" onclick="return confirmLink();"><i>Reset counter</i></a>');
function confirmLinkClick() {
    if (confirm("sure?")) {
        resetCookie();
    }
    return false;
}

В идеале, следует полностью избегать обработчиков DOM0 и использовать современные методы подключения клика, поскольку с помощью современных методов вы можете избежать создания глобальных функций. Это означает использование addEventListener (в современных браузерах) или attachEvent (в IE8 и более ранних версиях) или, что еще лучше, использование хорошей библиотеки, чтобы не беспокоиться об этих различиях.

1 голос
/ 30 ноября 2011

Вы должны обратить внимание на свой стиль цитаты - если вы откроете простую цитату ', вы не сможете использовать ее снова без побега, попробуйте это:

document.write("<a href='javascript:(confirm(\"continue?\") ? alert(\"true\") : alert(\"false\"))'>Reset counter</a>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...