如何使用 Greasemonkey 替换整个页面?

发布于 2024-08-15 05:01:25 字数 111 浏览 3 评论 0原文

有没有办法使用 Greasemonkey 替换整个网页?

基本上是重定向,但地址栏仍然显示原始地址。

我希望显示原始地址,但我想在没有人知道的情况下从我的硬盘加载修改后的网页。

Is there a way to replace a whole web page using Greasemonkey?

Basically a redirection but the address bar still shows the original address.

I want the original address to show, but I want to load a modified web page from my hard drive without anyone knowing.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

热血少△年 2024-08-22 05:01:25

嗯...这应该会改变页面内容

unsafeWindow.document.documentElement.innerHTML='DEFACED!!!!!!1!!!'

要获取您可以依赖的内容GM_xmlhttpRequest()

这里真正的问题是在什么时间触发greasemonkey;也就是说:对于用户不注意到发生的事情来说为时已晚

我不确定你想在这里实现什么目标。
这是恶作剧,还是实验室用户访问方案?

无论如何,为了让用户没有注意到,您最终需要执行以下两项操作之一:

  1. 编写一个成熟的 firefox 扩展,在加载过程中早于 GM 启动
  2. 添加一个非透明代理

mh... this should change page contents

unsafeWindow.document.documentElement.innerHTML='DEFACED!!!!!!1!!!'

To get those contents you could rely upon GM_xmlhttpRequest()

The real problem here is at what time greasemonkey is triggered; that is: too late for the user not to notice what happened.

I'm not sure about what you're trying to achieve here.
Is it a prank, or a lab user access scheme?

Anyway for the user not to notice you'll eventually need to do one of those two:

  1. write a full fledged firefox extension that kicks in earlier than GM in the loading process,
  2. add a non-transparent proxy in the way.
倾`听者〃 2024-08-22 05:01:25

是的,你也许可以这样做。它的难度在很大程度上取决于源页面和目标页面的复杂程度。如果它们都是简单的 html,那就很容易了。如果其中一个或两者都有很多奇特的样式和脚本,这可能会有点棘手,但这是可能的。

一种简单的方法可能是创建一个填充整个页面的 iframe?

或者,循环遍历 html 的“body”标签的所有子级并删除它们;然后插入iframe,或者插入其他页面的内容作为innerHTML。

Yes, you could probably do this. How hard it will be depends a lot on how complicated the source and destination pages are. If they're both simple html, it will be easy. If one or the other or both have a lot of fancy styling and scripting, it could be a bit tricky, but it'd be possible.

One easy way might be to create an iframe that fills the whole page?

Or, loop over all of the children of the "body" tag of the html and delete them; then insert the iframe, or insert the contents of the other page as innerHTML.

梦晓ヶ微光ヅ倾城 2024-08-22 05:01:25

我认为执行此操作的最简单方法是删除正文的内容,插入 iframe (100%x100%),并将其源设置为您选择的路径。

The easiest way I could see doing this would be to remove the contents of the body, insert an iframe (100%x100%), and set its source to the path of your choosing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文