PhoneGap / Cordova 2.3: comment ouvrir tous les liens externes dans InAppBrowser?

Je développe une application mobile utilisant Sencha Touch 2 et Cordova 2.3.0. Je voudrais pouvoir ouvrir tous les liens externes (du HTML chargé dynamiquement) dans le nouvel InAppBrowser.

Existe-t-il un moyen d'y parvenir sans devoir modifier tous les liens externes pour contenir target = "_ blank"?

Je souhaite intercepter des clics sur des liens externes et les ouvrir en utilisant l'API window.open d'InAppBrowser. Comme je cible iOS et Android, je suppose qu'une solution javascript serait préférable d'éviter les codes distincts (Java et Objective-C).

Merci!

Mise à jour: je viens de trouver ceci: https://gist.github.com/4694032

Le seul problème avec ça, c'est que je n'utilise pas jQuery dans mon application. Est-ce qu'il vaut la peine de l'inclure juste pour cette affaire?

Ext.each(Ext.query('a'), function(el) { el = Ext.get(el); el.on('click', function(e) { e.preventDefault(); console.log('clicked', el.getAttribute('href')); }); }); 

Vous pouvez également ajouter cet événement exclusivement pour les attributs (href) qui commence par "http", en utilisant regexp:

 Ext.Viewport.element.dom.addEventListener('click', function (e) { if (e.target.tagName !== 'A') { return; }; var url = e.target.getAttribute('href'); var containsHttp = new RegExp('http\\b'); //if href value begins with 'http' if(containsHttp.test(url)) { e.preventDefault(); window.open(url, "_system"); // For iOS navigator.app.loadUrl(url, {openExternal: true}); //For Android } else { return; } }, false); 

Ensuite, vous pouvez créer pour Android et iOS en même temps.