Доброго времени суток, уважаемые специалисты.
Вот методом тыка скрипт настроил, но осталась одна проблема: при нажатии на кнопку поделиться именно в Телеграмм или Ватсапп (остальные открываются в попап окне) происходит переход (в варианте браузера для ПК) на сайт сервиса и, соответственно, уход с сайта. А как сделать чтобы осуществлялось открытие в новом окне конкретно для варианта -
Телеграмм / Ватсапп с ПК браузера (на смартфоне идёт открытие tg://msg / whatsapp://send и ухода с сайта нет)?
Вот часть кода (весь код можно подчеркнуть тут
https://jsfiddle.net/29zLw8fx/2/) :
// Mail.ru
mr: function (options) {
return 'https://connect.mail.ru/share'
+ '?url=' + encodeURIComponent(_getURL(options))
+ '&title=' + encodeURIComponent(options.title)
+ '&description=' + encodeURIComponent(descr)
+ '&image_url=' + encodeURIComponent(ogimage);
},
// Telegram
tg: function (options) {
return options.link_telegram
+ '?url=' + encodeURIComponent(_getURL(options))
+ '&text=' + encodeURIComponent(options.title);
},
// WhatsApp
wa: function (options) {
return options.link_whatsapp
+ '?text=' + encodeURIComponent(_getURL(options) + " " + options.title);
},
// Viber
vi: function (options) {
return 'viber://forward'
+ '?text=' + encodeURIComponent(_getURL(options) + " " + options.title);
}
};
function init() {
var defaultOptions = {
type: 'email', // default share type
url: '', // url to share
title: document.title.split(' | ')[0], // title to share
image: '', // image to share
text: '', // text to share
utm_source: '',
utm_medium: '',
utm_campaign: '',
popup_width: 626,
popup_height: 436,
link_telegram: 'https://t.me/share/url',
link_whatsapp: 'https://wa.me/'
};
function api() {}
function go(element, options) {
var withoutPopup = [
'unknown',
'vi',
'tg',
'wa'
];
var tryLocation = true;
var link;
options = _extend(
defaultOptions,
_getData(element, defaultOptions),
options
);
if (typeof social[options.type] == 'undefined') {
options.type = 'unknown'
}
link = social[options.type](options);
if (withoutPopup.indexOf(options.type) === -1) {
tryLocation = _popup(link, options) === null;
}
if (tryLocation) {
if (element.tagName === 'A'
&& element.tagName === 'a') {
element.setAttribute('href', link);
return true;
} else {
location.href = link;
return false;
}
} else {
return false;
}
}
api.go = go;
api.options = defaultOptions;
return api;
}
return init();
}));
document.addEventListener("DOMContentLoaded", function(event) {
var shareItems = document.querySelectorAll('.lnkfrend');
var isIOS = /iPad|iPhone|iPod/.test(navigator.platform)
|| (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
var isAndroid = /(android)/i.test(navigator.userAgent);
var options = {};
if (isIOS || isAndroid) {
options.link_telegram = 'tg://msg';
options.link_whatsapp = 'whatsapp://send';
}
for (var i = 0; i < shareItems.length; i += 1) {
shareItems[i].addEventListener('click', function share(e) {
return JSShare.go(this, options);
});
}
});