我们如何在控制台中记录通过/失败的 url 检查结果?



我正在从HTML页面中获取所有URL链接,并调用一个函数来发送所有URL链接的XHR请求。我想以适当的方式控制台那些通过和失败的请求链接的日志。我在某种程度上得到了我的结果,但对控制台日志/错误的方式不满意。有人可以建议我需要在哪里更正控制台日志吗?

<div id="WebLinks">
<h2>All Links</h2>
<a href="https://jsfiddle.net/">Link 1</a><br>
<a href="https://stackoverflow.com/">Link 2</a><br>
<a href="https://tellus.com">Link 3</a><br>
<a href="https://loudop.com">Link 4</a><br>
<a href="https://www.youtube.com">Link 5</a><br><br>
<input type="button" id="linkChecker" onclick="linkCheck();" value="linkChecker">
</div>

如何改进已通过和失败的控制台日志。还要删除一些控制台错误;

var linkCheck = function() {
var arr = [],
l = document.links;
for (var i = 0; i < l.length; i++) {
arr.push(l[i].href);
console.log(arr[i]);
urlCheck(arr[i]);
}
function urlCheck(arr, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (callback) {
callback(xhr.status < 400);
}
}
};
xhr.open('HEAD', arr);
xhr.send();
}
urlCheck(arr, function(exists) {
console.log('"%s" exists?', arr, exists);
});
}

JS小提琴

您可以使用mode: "no-cors"选项通过fetchAPI执行此操作:

window.linkCheck = function() {
function urlCheck(link) {
fetch(link, {mode: "no-cors"}).then(
() => console.log(`${link} is valid`),
() => console.log(`${link} is invalid`)
);
}
var arr = [],
l = document.links;
for (var i = 0; i < l.length; i++) {
arr.push(l[i].href);
urlCheck(arr[i]);
}
};
<div id="WebLinks">
<h2>All Links</h2>
<a href="https://jsfiddle.net/">Link 1</a><br>
<a href="https://stackoverflow.com/">Link 2</a><br>
<a href="https://tellus.com">Link 3</a><br>
<a href="https://loudop.com">Link 4</a><br>
<a href="https://www.youtube.com">Link 5</a><br><br>
<input type="button" id="linkChecker" onclick="linkCheck();" value="linkChecker">
</div>

最新更新