删除与用户脚本
问题描述:
对不起,但我不是很好的编程。我正试图通过用户脚本修复我学校网站上的这个令人烦恼的错误。我已经在几个页面上测试了RegEx,至少这是有效的。我需要让userscript删除我不想看到的部分。这是来自网站源代码的片段,我标记了需要使用'//'删除的内容。删除<body>与用户脚本
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
//<html><head>
//<title>404 Not Found</title>
//</head><body>
//<h1>Not Found</h1>
//<p>The requested URL /get.php was not found on this server.</p>
//</body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" >
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="robots" content="index, follow" />
这是我的userscript不起作用。我知道这反映了我作为程序员的技能,请不要讨厌。
var REGEX = /<HTML>(.*?)([^\n]*?\n+?)+?<\/BODY><\/HTML>/ig;
document.body.innerHTML=document.body.innerHTML.replace(REGEX, '');
答
这个标记显然是无效的,但浏览器(至少Chrome和Firefox)将在这两个<html>
部分连同其最好的猜测合并。所以与document.body
交互可能不是你想要的。
做这样的事情在视觉上就会解决这个问题:
document.querySelector('h1').remove() // remove first h1 "Not Found"
document.querySelector('p').remove() // remove first p "The requested..."
为什么要删除吗?它是如何产生的? –
如果你可以更详细地解释什么“不起作用”,这将有所帮助,但我会假设你在脚本运行后得到一个空白页面 - 你的正则表达式的'g'标志将导致它删除__all__ HTML。 –
@Rawing'g'国旗不会造成这种情况。第二个''标签的属性与“”不匹配。这不是问题。 – Xufox