Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击按钮时下载文件jQuery_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 单击按钮时下载文件jQuery

Javascript 单击按钮时下载文件jQuery,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我的HTML中有以下按钮: <button id="exportVCardButton">Export vCard</button> 导出vCard 单击按钮时执行以下jQuery代码: $(document).on('click', '#exportVCardButton', function (e) { e.preventDefault(); document.location.href = 'contacts/createVCard.php?co

我的HTML中有以下按钮:

<button id="exportVCardButton">Export vCard</button>
导出vCard
单击按钮时执行以下jQuery代码:

$(document).on('click', '#exportVCardButton', function (e) {
    e.preventDefault();
    document.location.href = 'contacts/createVCard.php?contactID=<?php echo $contactID; ?>';
});
$(文档)。在('click','exportVCardButton',函数(e){
e、 预防默认值();
document.location.href='contacts/createVCard.php?contactID=';
});
单击此按钮时,createVCard.php脚本将创建一个vCard,并将文件作为下载发送到浏览器。在Safari中,它工作得很好。但是,在Google Chrome中,我在控制台中遇到以下错误:

资源被解释为文档,但使用MIME类型text/x-vcard传输


我试过几种不同的解决办法,但似乎都不管用。有没有人建议像在Safari中一样在Chrome中下载文件?

我知道Chrome解决这个问题的唯一方法是指定
标记的内部,要使用它,您的代码将更改为:

<a id="exportVCardButton" href="contacts/createVCard.php?contactID=<?php echo $contactID; ?>" download>Export vCard</a>

您需要确保在链接中设置了href属性,jQuery才能正常工作

@Marc这基本上就是我的代码所做的,除了使用按钮而不是链接。
$(document).on('click', '#exportVCardButton', function (e) {
    e.preventDefault();
    var href = $('#exportVCardButton').attr('href');
    document.location.href = href;
});