Nella mia app angolare utilizzando uno dei WYSIWYG posso inserire collegamenti senza protocollo. E questo è un male:javascript: leggi la semplice stringa html e utilizza il percorso dei collegamenti di modifica DOMparser
ho bisogno di analizzare la stringa e cambiare tutto il legame di
e cerco di farlo (se thay non ha avuto protocollo http://...):
var content = '<p>7</p><p>77</p><p><br></p><p><a href="http://example.com" rel="nofollow">http://example.com</a></p><p><br></p><p><a href="example.com" target="_blank">example.com</a></p><p><br></p><p><a href="ftp://localhost">ftp://localhost</a></p><p><br></p><p><a href="localhost">localhost</a><br></p>';
var addProtocolToLinks = function(URL){
var protocols = ['http', 'https', 'ftp', 'sftp', 'ssh', 'smtp'];
var withProtocol = false;
if (URL.length > 0){
protocols.forEach(function(el) {
if (URL.slice(0,4).indexOf(el) > -1){
withProtocol = true;
}
});
var newURL = URL;
if (!withProtocol){
newURL = 'http://' + URL;
}
console.log(newURL + ' ' + URL);
return newURL;
}
};
var parser = new DOMParser();
var doc = parser.parseFromString(content, "text/html");
var links = doc.getElementsByTagName("a");
for(var i=0; i<links.length; i++) {
links[i].setAttribute('href', addProtocolToLinks(links[i].href));
console.log('result: ' + links[i].getAttribute('href'));
}
console.log('result html: ');
console.log(doc); // also i need to fetch only my var content part, without html, body etc
Ma per alcuni motivi non funziona correttamente. Cosa faccio di sbagliato?
)) sicuri thay mio contenuto è dinamico, e ho potuto non solo modificarlo a ''
) ... il recupero non è fatto) – brabertaser19allora si potrebbe creare il contenitore all'interno della vostra funzione - ho modificato la mia risposta. –