使用 javascript 创建包含多个条目的单个 VCard 文件
Create a single VCard file with multiple entries using javascript
我使用了此 github gist 中的代码,它允许您将单个内容保存到 VCF 文件中。
<!doctype html>
<html>
<head>
<script type="text/javascript" src="vcard2.js"></script>
</head>
<script type="text/javascript">
// From JSON
var johnSmith = {
"version": "4.0",
"n": "SMITH;John;;",
"fn": "John Smith",
"nickname":"js",
"title": "Missing man too",
"tel": [
{"value": "555-555-555", "type": "cell"}
],
"email": [
{ "value": "john.smith@work.com", "type": "work" },
{ "value": "john.smith@home.com", "type": "home" }
]
}
var link = vCard.export(johnSmith, "John Smith", false) // use parameter true to force download
document.body.appendChild(link)
</script>
</body>
</html>
这适用于单个内容,如文件参见 JSfiddle。
我的问题是如何将多个内容添加到同一个 VCF 文件中。
在您提供的 fiddle 中,只需编辑 dump()
函数以接受数组。然后迭代数组并执行完全相同的操作,将输出(用 \n
拆分)合并到一个变量中。
dump: function(cards) {
var cardsLength = cards.length;
var cardsStr = "";
for (var cardsIndex = 0; cardsIndex < cardsLength; cardsIndex++) {
var card = cards[cardsIndex];
//...existing code... just remove the return
cardsStr+=str+"\n";
}
return cardsStr;
}
现在调用 vCard.export()
并传递对象数组而不是对象。
在这里试试:JSFiddle
我使用了此 github gist 中的代码,它允许您将单个内容保存到 VCF 文件中。
<!doctype html>
<html>
<head>
<script type="text/javascript" src="vcard2.js"></script>
</head>
<script type="text/javascript">
// From JSON
var johnSmith = {
"version": "4.0",
"n": "SMITH;John;;",
"fn": "John Smith",
"nickname":"js",
"title": "Missing man too",
"tel": [
{"value": "555-555-555", "type": "cell"}
],
"email": [
{ "value": "john.smith@work.com", "type": "work" },
{ "value": "john.smith@home.com", "type": "home" }
]
}
var link = vCard.export(johnSmith, "John Smith", false) // use parameter true to force download
document.body.appendChild(link)
</script>
</body>
</html>
这适用于单个内容,如文件参见 JSfiddle。 我的问题是如何将多个内容添加到同一个 VCF 文件中。
在您提供的 fiddle 中,只需编辑 dump()
函数以接受数组。然后迭代数组并执行完全相同的操作,将输出(用 \n
拆分)合并到一个变量中。
dump: function(cards) {
var cardsLength = cards.length;
var cardsStr = "";
for (var cardsIndex = 0; cardsIndex < cardsLength; cardsIndex++) {
var card = cards[cardsIndex];
//...existing code... just remove the return
cardsStr+=str+"\n";
}
return cardsStr;
}
现在调用 vCard.export()
并传递对象数组而不是对象。
在这里试试:JSFiddle