好的,有几种方法可以解决为动态生成的元素触发 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/