[英]Trigger click() for dynamically created elements
好的,有几种方法可以解决触发动态生成元素的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
标头,将其标识为“附件”(相同的标头也可以建议名称),以获得跨MIME类型的一致处理。
以下是我在生产代码中使用的函数,它与您的有点不同,但它可能就是您所需要的。
function psuedoClick(href, target){
if(!target) target = '_self';
var falseAnchor = $('<a/>').attr({
'href' : href,
'target' : target
}).appendTo('body');
falseAnchor[0].click();
falseAnchor.remove();
};
只需在调用函数时传入参数即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.