作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含活跃服务人员的网页。该页面有链接 <a>
当点击请求时,服务人员按预期拦截了请求。但是,当用户右键单击链接并选择另存为...时,服务人员将被忽略(并且向服务器发送正常请求,就好像没有服务人员一样)。
如何强制另存为功能通过服务工作线程?
答案应该依赖于更改按钮链接或更改非服务 worker 客户端部分。
最佳答案
可以设置href
至 javascript:void(0)
, 使用 data-*
用于存储应获取的 URL 的属性,位于 click
的 <a>
元素使用fetch()
,这应该要求 ServiceWorker
可以拦截。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href="javascript:void(0)"
data-href="placehold.it/1x1"
title="placehold.it">placehold.it</a>
<script>
document.querySelector("a").onclick = function(e) {
e.preventDefault();
var request = fetch(location.protocol + "//" + this.dataset.href);
request.then(response => response.blob())
.then(blob => console.log(blob))
}
</script>
</body>
</html>
关于javascript - 如何强制将链接另存为,下载链接,而不是忽略事件的服务人员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40519266/
我有 json 数据: { "products": [ { "productId" : 0, "productImg" : "../img/product-ph
我是一名优秀的程序员,十分优秀!