javascript - 带有换行符的标签 href 数据

标签 javascript download newline vcf-vcard

我正在使用 angularjs 并尝试创建一个系统来下载用 javascript 创建的 vcard。为了让 vcard 在移动设备上运行,需要通过 a 标签下载数据。问题是每次我设置 href="data:text/vcard, "+ string 它都会保存 vCard 但会删除换行符。 vCard 仅适用于换行符

有没有办法在保存数据的同时保留换行符?

$scope.saveVcard = function(){
    var user = $scope.member;
    var out_string = 'BEGIN:VCARD\nVERSION:2.1\n\rN:' + user.last_name + ';' + user.first_name + ';;;\n\r'; //name
    out_string += 'FN:' + user.first_name + ' ' + user.last_name + '\n\r';//FN
    if (user.phone){
    out_string += 'TEL;CELL:' + user.phone + '\n\r';} //Phone
    if (user.email){
    out_string += 'EMAIL;PREF;INTERNET:' + user.email + '\n\r';}//Email
    if (user.prof_pic){
    out_string += 'PHOTO;PNG:'+user.prof_pic + '\n\r';}//picture
    out_string += 'END:VCARD';
           var a         = document.createElement('a');
           a.href        = 'data:text/vcard,' + out_string;
           a.target      = '_blank';
           a.download    = 'contact.vcf';
           console.log(a.href);
           document.body.appendChild(a);
           a.click();
           document.body.removeChild(a);

最佳答案

啊哈,我想通了,只需使用函数 encodeURIComponent()。

var a = document.createElement('a');
       a.href        = 'data:text/vcard,' + encodeURIComponent(out_string);
       a.target      = '_blank';
       a.download    = 'contact.vcf';
       console.log(a.href);
       document.body.appendChild(a);
       a.click();
       document.body.removeChild(a);

关于javascript - 带有换行符的标签 href 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26792637/

相关文章:

angular - 从 4/5 Angular JSON 后响应数据下载为 PDF

python - 使用新行读取 csv 文件

javascript - JavaScript 中的颜色 Storm 文本效果

javascript - 如何在 PHP 文件中使用 MySQL 检查数据提交是否成功

android - 是否可以在 Android DownloadManager 中提交 cookie

javascript - Windows 中 Firefox 的行结束行为不一致

bash - Bash 中的 Echo 换行符打印文字\n

javascript - 如果使用目录 :'rtl',Dojo Text 会将所有特殊字符右对齐

Javascript获取数组中项目的父级

ios - 在 iOS 上购买的大于 200MB 的超大文件应该存储在哪里?