javascript - 使用 jQuery/Javascript 通过 id 下载文件

标签 javascript jquery

我有 100 多篇文章。每篇文章都附有不同的 PDF 文件。有一个表单,用户必须在其中填写并被重定向到感谢页面。代码如下。

document.addEventListener( 'wpcf7mailsent', function( event ) {
    location = 'https://example.com/thankyou';
}, false );

在上面的代码中,我想添加下面的代码,以便它触发下载。如何组合这两个代码?

$(document).ready(function(){
    $("#download a").trigger("click");
});

HTML 格式的文章:

<p>Content goes here</p>
<p id="download"><a href="https://example.com/path/file.pdf">Download</a></p>

如果有更好的方法,欢迎提出。

最佳答案

传入一个get参数。

由于您正在重新加载新页面,因此您应该传递一个 get 参数以指示应该开始下载。

document.addEventListener( 'wpcf7mailsent', function( event ) {
    location = 'https://example.com/thankyou?download';
}, false );

然后在您的页面上确实有下载文件。

$(document).ready(function(){
  if (window.location.search.includes("download")){
    $("#download a").trigger("click");
  }
});

如果您在单个页面上有一个列表,您可以在下载参数中传递一个参数 ?download="1234.zip" 并将其用作您的目标。如果您使用此方法,请小心,以免您暴露在 JS 注入(inject)中。

关于javascript - 使用 jQuery/Javascript 通过 id 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58758354/

相关文章:

javascript - Hybrid App - 使用 iPhone 数字键盘,我可以添加小数点吗?

jquery - 安装 featherbox gallery 后,所有链接均无效且移动菜单丢失!为什么?

jquery选择 "parents"

jquery - 在 Jquery Mobile 中拉伸(stretch)水平单选按钮

javascript - Vuex:使用 API 调用测试操作

javascript - 比较 2 个数组的元素并返回计数 JavaScript

javascript - Node 子进程事件监听

javascript - Node 应用程序未在远程服务器上运行,而是在 PC 上运行

javascript - js-hotkeys,当组合超过 1 个键时函数引发两次

jquery - 将鼠标悬停在 Jquery SlideDown 菜单上时保持该菜单打开吗?