Javascript 下载前的消息框(接受/取消)

Javascript 下载前的消息框(接受/取消),javascript,Javascript,目前在我们的网站上,我们有一个图片,上面写着“下载”,链接到可下载的材料 老板让我确保当人们点击“下载”图片(也可以是一个表单按钮)时,它会提示一条消息(JS消息框),上面写着:“我接受使用条款”和“接受”和“取消”按钮“接受”将带您进入下载文件,“取消”将关闭消息框。 我相信我以前见过,如果有人能帮我的话,那就太好了 谢谢您可以使用内置的确认功能 if (confirm("I accept terms of use")){ // proceed } else { // canc

目前在我们的网站上,我们有一个图片,上面写着“下载”,链接到可下载的材料

老板让我确保当人们点击“下载”图片(也可以是一个表单按钮)时,它会提示一条消息(JS消息框),上面写着:“我接受使用条款”和“接受”和“取消”按钮“接受”将带您进入下载文件,“取消”将关闭消息框。 我相信我以前见过,如果有人能帮我的话,那就太好了


谢谢

您可以使用内置的
确认
功能

if (confirm("I accept terms of use")){
    // proceed
} else {
    // cancel
}

您可以使用内置的确认功能

if (confirm("I accept terms of use")){
    // proceed
} else {
    // cancel
}

也许您可以使用一个包含“单击确定您同意我们的条款和条件”这样的消息的框。

也许您可以使用一个包含“单击确定您同意我们的条款和条件”这样的消息的框。

最简单的解决方案可能是使用默认浏览器确认对话框:

<a href="/download.pdf" onclick="return confirm('I accept terms of use')">Download</a>

最简单的解决方案是使用默认浏览器确认对话框:

<a href="/download.pdf" onclick="return confirm('I accept terms of use')">Download</a>

要做你想做的事情,请使用如下函数:

function acceptedTermsAndConditions(eventObject) {
    var accepted = false;
    accepted = window.confirm('Your T&C goes here');
    if (!accepted) {
        if (eventObject.cancelBubble) {     // Cancel in IE
            eventObject.cancelBubble = true;
        }
        if (eventObject.stopPropagation) {  // Cancel in other browsers
            eventObject.stopPropagation();
        }
    }
    return accepted;
}
并将其附加到图像周围锚定标记的单击处理程序

cancelBubble
stopPropagation()
将防止在其他元素上发生单击事件

也就是说,JavaScript可能不是最好的解决方案,因为任何用户都可以简单地关闭站点的JavaScript。如果用户在浏览器中关闭JavaScript,您的代码将不会执行,下载将正常进行,不会提示T&C

更可靠的解决方案是更改链接以调用不同的页面,并将图像作为参数传递给下载(即,
tnc.aspx?image_id=xxx
tnc.php?image=xxx.jpg
等)

然后,不同的页面可以只是一个显示T&C的表单,并且必须提交到服务器端进行处理。如果服务器端代码确定T&C已被接受,请重新定向到映像进行下载

希望这有帮助


Pete

要做你想做的事情,请使用如下函数:

function acceptedTermsAndConditions(eventObject) {
    var accepted = false;
    accepted = window.confirm('Your T&C goes here');
    if (!accepted) {
        if (eventObject.cancelBubble) {     // Cancel in IE
            eventObject.cancelBubble = true;
        }
        if (eventObject.stopPropagation) {  // Cancel in other browsers
            eventObject.stopPropagation();
        }
    }
    return accepted;
}
并将其附加到图像周围锚定标记的单击处理程序

cancelBubble
stopPropagation()
将防止在其他元素上发生单击事件

也就是说,JavaScript可能不是最好的解决方案,因为任何用户都可以简单地关闭站点的JavaScript。如果用户在浏览器中关闭JavaScript,您的代码将不会执行,下载将正常进行,不会提示T&C

更可靠的解决方案是更改链接以调用不同的页面,并将图像作为参数传递给下载(即,
tnc.aspx?image_id=xxx
tnc.php?image=xxx.jpg
等)

然后,不同的页面可以只是一个显示T&C的表单,并且必须提交到服务器端进行处理。如果服务器端代码确定T&C已被接受,请重新定向到映像进行下载

希望这有帮助


皮特

哇。真正优雅的解决方案!太棒了,正是我需要的。谢谢大家的贡献。哇。真正优雅的解决方案!太棒了,正是我需要的。谢谢大家的贡献。