Внешние ссылки с использованием Phonegap/Telerik Platform/Cordova без OnClick на ссылку
Мы используем Telerik Platform, который работает на Cordova. Мы динамически извлекаем контент из CMS, который показывает часть нашего контента в нашем приложении. Наши авторы хотят добавлять ссылки в контент, но, разумеется, я не хочу, чтобы им приходилось ставить "клик" на ссылки в Rich Text Editor в CMS.
Есть ли способ, позволяющий нашим авторам просто вводить ссылки с добавленным к ним классом CSS или что-то в этом роде, чтобы я мог захватывать щелчок, используя jQuery или что-то подобное, и чтобы ссылка переводилась в приложении Cordova, чтобы открыть "_системный "браузер.
В конечном итоге я хочу, чтобы мои ссылки выглядели так, чтобы их авторы могли использовать при вводе их в CMS:
<a href="http://mylink.com" target="_blank" class="externalLink">My external link</a>
Но в приложении PhoneGap/Telerik Platform я хочу, чтобы ссылка открывалась в браузерах системы. В настоящее время это не так, он открывается в текущем веб-просмотре и блокирует приложение на веб-странице без какого-либо возврата.
Я пробовал это до сих пор, но безрезультатно. Кажется, что "href" просто запускает браузер, а затем приложение попадает в браузер веб-просмотра и не вернется без принудительного выхода из приложения.
//IN THE APP JS ITSELF
//Don't even think this works
$('a.externalLink, a[target="_blank"]').on('click', function(e){
e.preventDefault();// Does not prevent default
console.log("trying to get system");//Does not console
alert("prevent default"); // Does not alert
window.open($(this).attr('href'), '_system');
return false;
});
Кажется, что ссылка, которая вводится в CMS, просто указывает на ссылку 'href' и игнорирует вышеуказанный jQuery. Любой способ поймать это прежде, чем веб-представление поймает это?
1 ответ
Я нашел ответ в том случае, если кто-то еще хочет сделать это, БЕЗ размещения события onclick на самом href.
$(document).on('click', 'a[target="_system"],a[target="_blank"]', function (e) {
e.preventDefault();
var url = this.href;
window.open(url,"_system");
});