【问题标题】:Replace some text from any HTML page before it is displayed在显示之前替换任何 HTML 页面中的一些文本
【发布时间】:2010-12-10 04:02:29
【问题描述】:

我想在显示之前隐藏与任何 HTML 页面中的模式匹配的任何文本。

我用 Greasemonkey 尝试过类似的东西:

var html = document.body.innerHTML;
html = html.replace( /some pattern/g, '???' );
document.body.innerHTML = html;

我要隐藏的文本已正确替换为“???”,但在页面加载的短暂时间里,我可以看到原始文本。正如 crescentfresh 所说,它无法用 Greasemonkey 修复。

我知道我可以使用像 Proximodo 这样的代理来解决它,但我更愿意避免安装它。

知道必须在 Firefox 上运行,最简单的方法是什么?

对于那些有兴趣的人,我想用它在我女朋友电脑的任何页面上隐藏价格,让她选择礼物。

【问题讨论】:

  • greasemonkey 脚本运行 DOM 已加载并准备好与之交互;这就是它的本质。考虑到您正在执行document.body.innerHTML=...(导致非常昂贵的重绘操作),闪烁是不可避免的。
  • @crescentfresh - 你应该把它作为一个实际的答案。我会赞成。
  • 看来我得安装 Poximodo...
  • @Matt:谢谢。也许 Jazz 可以简单地回答并接受 Poximodo sol'n(我不知道那是什么)。
  • 最后一行+1..哦,这些程序员!!!

标签: javascript html firefox dom greasemonkey


【解决方案1】:

使用扩展程序,您可能可以做到。

我记不太清了,但LiveHttpHeaders 可能会在访问浏览器之前捕获 http 流量,从而使您能够删除所需的内容。

另外,如果不是等待整个页面加载,而是在 DOMNodeInserted 事件中替换它,它可能足够快,以至于不显示实际内容。

另外,如果您以前从未做过 Firefox 扩展,请不要惊慌!甚至还有一个 greasemonkey extension compiler 可以做脏活,并为您提供良好的开始基础。我会这样做,然后查找 window.onload 事件,然后在文档中附加一个 DOMNodeInserted 事件,而不是greasemonkey 代码。

还有(第四次编辑!),她真正想要的是你读懂她的想法并挑选她想要的礼物 XD

【讨论】:

  • 我将尝试对此进行扩展。要是我能做一个扩展来读懂她的想法就好了!
猜你喜欢
  • 1970-01-01
  • 2022-08-16
  • 2017-03-19
  • 2012-01-21
  • 1970-01-01
  • 2018-10-07
  • 2011-06-20
  • 2018-10-02
  • 1970-01-01
相关资源
最近更新 更多