删除与用户脚本

问题描述:

对不起,但我不是很好的编程。我正试图通过用户脚本修复我学校网站上的这个令人烦恼的错误。我已经在几个页面上测试了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, ''); 
+0

为什么要删除吗?它是如何产生的? –

+0

如果你可以更详细地解释什么“不起作用”,这将有所帮助,但我会假设你在脚本运行后得到一个空白页面 - 你的正则表达式的'g'标志将导致它删除__all__ HTML。 –

+0

@Rawing'g'国旗不会造成这种情况。第二个''标签的属性与“”不匹配。这不是问题。 – Xufox

这个标记显然是无效的,但浏览器(至少Chrome和Firefox)将在这两个<html>部分连同其最好的猜测合并。所以与document.body交互可能不是你想要的。

做这样的事情在视觉上就会解决这个问题:

document.querySelector('h1').remove() // remove first h1 "Not Found" 
document.querySelector('p').remove() // remove first p "The requested..." 
+0

我会马上尝试,谢谢。我唯一担心的是问题实际上是在文档后面重复的,所以我有两个实例。但这仍然是一个巨大的帮助。 – marnason

+0

它的工作!它删除了两个实例,因为它们之间没有任何实际的

-内容,所以我只运行了两次。 – marnason