我正在制作一个智能脚本,将所有按钮/链接点击报告到GA中。
我想将重定向与文件下载分开。使用的代码始终为a
,并指定了href
属性。
所以,让我说我有以下hrefs:
"/"
"aboutus/"
"//www.google.com"
"file1.txt"
"file2.PDF"
"file3.jpeg"
最有效的方法是使用包含所有可能的文件扩展名的数组,然后将其与href
匹配,还是应该是regEx或其他?
答案 0 :(得分:2)
正如评论中已经提到的,不可能只从URL知道浏览器将对链接做什么。
浏览器会读取它从服务器获取的响应,并根据响应中的标头决定要执行的操作(查看页面,重定向,下载等)。
我认为在服务器端检查您创建的链接会更好,如果链接是可下载文件,请在此链接中添加一些类:
<a href="file.pdf" class="downloadable">Click to download</a>
在您的javascript代码中检查具有此<a>
类的downloadable
代码:
$('a.downloadable').click(function() {
// Do whatever you need once the link was clicked.
})
另一个选项(如果你真的想)是发送一个HEAD
请求,解析响应头,并根据标题来决定做什么:
$('a').click(function(e) {
e.preventDefault()
$.ajax({
type: "HEAD",
async: true,
url: URL,
}).done(function(message,text,jqXHR){
// here you can use jqXHR.getResponseHeader('header-name);
});
});
我真的建议你反对这个选项,但如果你真的必须这样做,那就在这里:)