javascript使用document.write确认操作

时间:2011-11-30 13:51:34

标签: javascript-events javascript

我有一个javascript函数,我想在确认为真时调用。我正在使用document.write,因为源文档是.js文件,而不是html。

在真实条件执行之前,我希望用户确认他们确定要重置计数器。

我有两次尝试 - 第一次尝试返回true为false,但没有在真实条件下调用resetCookie()函数。

我认为,第二次尝试在语法上是不正确的,因为它似乎什么都不做。

第一次尝试:

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

第二次尝试:

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

谢谢您的帮助。

3 个答案:

答案 0 :(得分:3)

为什么不直接使用jscript confirm()函数?

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 :(得分:1)

你应该注意你的引用风格 - 如果你打开单引号'你不能再逃避使用它,试试这个:

document.write("<a href='javascript:(confirm(\"continue?\") ? alert(\"true\") : alert(\"false\"))'>Reset counter</a>");

答案 2 :(得分:1)

假设你将这个JavaScript文件内联,并假设这个代码立即运行(例如,它不在页面加载后触发的函数调用中),你可以使用document.write就好了,尽管一般我d避免它。

我还避免在DOM0(onclick - 样式)处理程序中放置任何类型的逻辑;相反,调用一个函数:

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

理想情况下,完全避免使用DOM0处理程序并使用现代方法来连接点击,因为使用现代方法可以避免创建全局函数。这意味着使用addEventListener(在现代浏览器上)或attachEvent(在IE8及更早版本上),或者更好地使用一个好的库来避免担心这些差异。