javascript - 为动态创建的元素触发 click()

标签 javascript jquery html

好的,有几种方法可以解决为动态生成的元素触发 click() 的问题。首先,这适用于 Chrome 但不适用于 IE 或 FF:

var href="/myUrl";
var link = $("<a>");
link.prop("href", href);
link[0].click()

因此,如果认为在不存在的元素上使用 click() 在 IE 或 FF 中不起作用,那么最好的方法是什么?

var href="/myUrl";
var link = $("<a>");
link.prop("href", href);
$(document).append(link); // Attach it to the DOM so it exists
link[0].click()

或者我还缺少更简单的东西吗?感谢您提供任何有用的提示。

最佳答案

您说过要触发文件下载。另一种简单的方法是在页面上有一个不可见的 iframe:

<iframe src="about:blank" style="display: none" id="downloader"></iframe>

...然后当你想触发下载时:

$("#downloader").attr("src", "/myUrl");

对于您当前的解决方案,重要的是包含文件的响应有一个 Content-Disposition header ,将其标识为“附件”(相同的 header 也可以建议一个名称),以获得跨 MIME 类型的一致处理。

关于javascript - 为动态创建的元素触发 click(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42280722/

相关文章:

JavaScript 正则表达式匹配索引

javascript - Shiny - 动态生成的输入

javascript - 在按下或更改事件时,触发 Ajax 以在 jQuery 中发送数据

javascript - 使用 Jquery 的 onClick 事件

javascript - 接收到服务信息后动态建表

javascript - JS 命令不允许字母,只允许数字(disc bot)

javascript - JSDoc中如何注解 "@readonly-but-modified-internally"成员/属性?

jquery - 我无法摆脱这个滚动条

javascript - jQuery UI 设置绝对对话框位置不执行任何操作

javascript - 如何在yii中的div onclick中加载页面?