javascript - 在显示之前替换任何 HTML 页面中的一些文本

标签 javascript html firefox dom greasemonkey

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

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

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

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

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

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

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

最佳答案

通过扩展,您或许可以做到。

我记不太清楚了,但有可能是LiveHttpHeaders在到达浏览器之前捕获 http 流量,使您能够删除您想要的内容。

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

此外,如果您以前从未做过 Firefox 扩展,请不要 panic !甚至还有一个 greasemonkey extension compiler它完成了肮脏的工作,并为您奠定了良好的基础。我会这样做,然后寻找一个 window.onload 事件,而不是 greasemonkey 代码,将 DOMNodeInserted 事件附加到文档中。

也是也是(第四次编辑!),她真正想要的是你读懂她的心思,挑选她想要的礼物XD

关于javascript - 在显示之前替换任何 HTML 页面中的一些文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1625361/

相关文章:

javascript - 在同一页面(HTML 和 CSS)上使用 Codemirror 两次导致仅应用一种突出显示模式

javascript - 如何返回选中复选框的所有值?

javascript - ng-disabled 在 chrome 中不起作用

php - 提交表单时出错

javascript - 如何使用 MongoDB 和 Mongoose/Express 将时间日期 UTC 转换为本地,反之亦然?

asp.net - html 元素的命名约定

html - 导航栏下拉菜单

firefox - 未知属性 '-moz-box-shadow'。声明被丢弃

html - 在 Firefox 中使用 tab 时删除 <html> 的轮廓

unit-testing - 从单元测试调用插件功能