Trong ứng dụng góc của tôi sử dụng một trong WYSIWYG tôi có thể chèn liên kết mà không có giao thức. Và điều này là xấu:javascript: đọc chuỗi html đơn giản và sử dụng đường dẫn thay đổi DOMparser đường dẫn
tôi cần phải phân tích chuỗi và thay đổi tất cả liên kết của
và tôi cố gắng để làm như vậy (nếu Thầy không có giao thức để 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
Nhưng vì một số lý do, nó không hoạt động bình thường. Tôi đã làm gì sai?
)) chắc chắn thể thay nội dung của tôi là năng động, và tôi có thể không chỉ thay đổi nó cho '
') ... quyến rũ không được thực hiện) – brabertaser19sau đó bạn có thể tạo các thùng chứa trong chức năng của bạn - Tôi thay đổi nội dung câu trả lời của tôi. –