Skip to content

组件监测

该功能主要是为一些有api请求的组件,API失效后自动隐藏而设置

在home页的HTML找到如下

<script>
			// 监听B站收藏夹视频链接
			checkIframeLoad("bilibiliContainer", "https://www.noisework.cn/e/bili/index.html?id=3271958393");

			// 监听云盘资源链接
			checkLink("https://www.pan.noisework.cn/api/search", "panContainer");

			// 监听60秒读懂世界链接
			checkLink("https://www.wudada.online/Api/ScD", "worldContainer");

			// 监听摸鱼日历链接
			checkLink("https://dayu.qqsuu.cn/moyurili/apis.php", "moyuContainer");

			// 监听随机一言代码链接
			checkScriptLoad("hitokotoContainer", "https://v1.hitokoto.cn/?encode=js&select=%23hitokoto");			
		
			// 检查链接是否有效的函数
			function checkLink(url, containerId) {
				fetch(url, { method: 'HEAD' })
					.then(response => {
						if (response.ok) {
							// 如果链接有效,显示容器
							document.getElementById(containerId).style.display = 'block';
						} else {
							// 如果链接无效,隐藏容器
							document.getElementById(containerId).style.display = 'none';
						}
					})
					.catch(error => {
						// 如果请求失败,隐藏容器
						document.getElementById(containerId).style.display = 'none';
					});
			}

			// 检查iframe是否成功加载内容的函数
			function checkIframeLoad(containerId, iframeSrc) {
				const iframe = document.createElement('iframe');
				iframe.src = iframeSrc;
				iframe.onload = function () {
					// 如果iframe成功加载,显示容器
					document.getElementById(containerId).style.display = 'block';
				};
				iframe.onerror = function () {
					// 如果iframe加载失败,隐藏容器
					document.getElementById(containerId).style.display = 'none';
				};
				// 这里不需要将iframe添加到页面上,只是用来检查链接的有效性
			}

			// 检查脚本是否成功加载的函数
			function checkScriptLoad(containerId, scriptSrc) {
				const script = document.createElement('script');
				script.src = scriptSrc;
				script.onload = function () {
					// 如果脚本成功加载,显示容器
					document.getElementById(containerId).style.display = 'block';
				};
				script.onerror = function () {
					// 如果脚本加载失败,隐藏容器
					document.getElementById(containerId).style.display = 'none';
				};
			}

		</script>

已添加了注释,检测的为设置的API地址,需要和组件中设置的地址一致,监测主要分为API地址是否有效、B站收藏网页嵌入地址是否有效、JS脚本请求加载是否有效