#javascript #json #vcf-vcard
#javascript #json #vcf-визитная карточка
Вопрос:
Я использовал код из этого 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.
Ответ №1:
В предоставленной вами скрипке просто отредактируйте 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()
и передайте массив объектов вместо object .
Попробуйте это здесь: JSFiddle