Javascript 使用onerror检测表中的404个链接
我有一个包含链接的表,我正试图从包含404个URL的列表中隐藏这些项目。Javascript 使用onerror检测表中的404个链接,javascript,jquery,html,Javascript,Jquery,Html,我有一个包含链接的表,我正试图从包含404个URL的列表中隐藏这些项目。 我在下表列出了两个清单。最上面是steve,它有apple.com的链接,然后是bill,它有无效的src,只是指向windows。因此,在windows上,它应该自动从列表中隐藏 下面是我的代码示例: 小提琴用链环 HTML 您可以通过以下方式使用AJAX和服务器端脚本(如PHP)检查URL是否为404: /*检查\u url.php $url=$_POST['url']; $handle=curl\u init($u
我在下表列出了两个清单。最上面是steve,它有apple.com的链接,然后是bill,它有无效的src,只是指向windows。因此,在windows上,它应该自动从列表中隐藏 下面是我的代码示例: 小提琴用链环 HTML
您可以通过以下方式使用AJAX和服务器端脚本(如PHP)检查URL是否为404:
/*检查\u url.php
$url=$_POST['url'];
$handle=curl\u init($url);
curl_setopt($handle,CURLOPT_RETURNTRANSFER,TRUE);
$response=curl\u exec($handle);
$httpCode=curl\u getinfo($handle,CURLINFO\u HTTP\u CODE);
如果($httpCode==404){
回声‘404’;
退出();
}
卷曲关闭($handle);
回声‘ok’;
退出();
*/
$('tr[src]')。每个(函数(i){
var thisRow=$(此);
var thisrc=thisRow.attr('src');
if(thisrc){
$.ajax({
url:“check_url.php”,
键入:“post”,
数据:{
“url”:thisSrc
},
成功:功能(数据、状态){
如果(数据!=“确定”)thisRow.remove();
}
});
};
});代码>
史蒂夫
苹果
比尔
窗户
因此,如果属性src
具有无效URL,是否要隐藏表行?如果src具有404 yesonerror
事件仅由以下因素触发:
,
,
,
和
。您需要服务器端脚本来检查外部URL是否为404。要么在输出源代码之前检查,要么使用AJAX调用PHP,然后删除行。还有其他方法可以做到这一点吗?我的网站只使用html,不使用php,而用于每个URL。虽然此解决方案在技术上是正确的,但如果您在第三方托管您的网站,并收取出站I/O费用,则可能会产生成本影响,因为您会大大增加服务器可能发出的HTTP请求数。考虑在服务器上周期性地执行这些请求,只需在PHP中生成页面(或者使用任何服务器端代码),这些链接只有不存在的链接。
<table>
<tbody>
<tr src="https://www.apple.com/" onerror="Error(this);">
<td class="listname">Steve</td>
<td class="listdesc">Apple</td>
</tr>
<tr src="windows" onerror="Error(this);">
<td class="listname">Bill</td>
<td class="listdesc">Windows</td>
</tr>
</tbody>
</table>
function trError(tr) {
tr.style.display = 'none';
}