Uservoice просит вас загрузить асинхронный виджет при загрузке страницы, код которого выглядит следующим образом:
var uvOptions = {};
(function() {
var uv = document.createElement('script'); uv.type = 'text/javascript'; uv.async = true;
uv.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'widget.uservoice.com/loremipsum.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(uv, s);
})();
А затем они дают вам возможность запустить свой виджет по клику следующим образом:
javascript:UserVoice.showPopupWidget();
Что если я не хочу загружать их виджет, когда страница вообще загружается, только когда пользователь нажимает на ссылку?
Я бы предположил что-то вроде этого:
$('selector').click(function () {
var uvOptions = {};
(function() {
var uv = document.createElement('script'); uv.type = 'text/javascript'; uv.async = true;
uv.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'widget.uservoice.com/cyoJokWhM5SEW9I3h3oBFQ.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(uv, s);
})();
javascript:UserVoice.showPopupWidget();
});
Но на самом деле это не работает? Есть ли другой известный способ?