繁体   English   中英

当用户单击fineuploader按钮时,如何重定向他们而不显示文件选择对话框?

[英]When a user clicks the fineuploader button, how can I redirect them instead of showing the file selection dialog?

我们正在使用.net和fineuploader。 如果用户会话已超时,并且他们单击fineuploader按钮,则我们需要能够将他们重定向到登录页面,而不是向他们显示文件选择对话框。

我们已经能够在fineuploader的“提交”事件中进行分类,但是用户在执行重定向之前仍会看到文件选择对话框。

$("#fine-uploader").fineUploader().on("submit", function (event, id, name) 
{
  if (noSession){
    cancelUploads();
    window.onbeforeunload = function () { return; }
    location.href = "/login";
  }
}

我没有看到任何在文件选择对话框之前触发的事件,除非我错过了它( http://docs.fineuploader.com/api/events.html )。

在显示文件选择对话框之前,有什么方法可以做吗?

您可以使用prevent default停止提交操作并运行检查。 如果登录,请使用else语句完成提交。

 $("#fine-uploader").fineUploader().on("submit", function (event, id, name) { event.preventDefault(); if (noSession){ cancelUploads(); window.onbeforeunload = function () { return; } location.href = "/login"; } else{ return true; } } 

https://api.jquery.com/event.preventdefault/

该解决方案可能很简单,只需将点击处理程序附加到基础文件输入元素,防止浏览器对点击进行默认操作(通常会显示文件选择器),然后将用户重定向到您选择的页面:

document.querySelector('input[type="file"]')
   .addEventListener('click', function(event) {
      event.preventDefault()
      location.href = "/login"
   })

当您要重定向时,请添加此事件处理程序;否则,请删除它。 或者,您可以在创建上传器后添加它,并向单击处理程序函数添加一些逻辑,该逻辑仅阻止默认操作并在用户必须重新登录时重定向。

警告:我尚未测试此跨浏览器(仅适用于Chrome)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM