gpt4 book ai didi

javascript - 如何在运行时修改/"Spoof"标准浏览器JS DOM对象(Window.location)?

转载 作者:行者123 更新时间:2023-11-28 10:17:53 24 4
gpt4 key购买 nike

我想从 Web 浏览器中动态更改一些标准 JS DOM 对象。

例如,当我执行时:

var site = location;

我想在运行时为浏览器的“window.location”对象指定一个新值,而不是“正确”值(用于访问所请求页面的 URL),无论是通过类似调试器的界面还是以编程方式如果需要的话。

尽管 Firebug 宣传通过其“DOM 检查器”执行类似操作的功能,但每当我在通过其调试器暂停 Javascript 时尝试修改任何 DOM 值时,它都会忽略我输入的新值。经过一些研究后,根据此错误报告,这似乎是一个已知问题:http://code.google.com/p/fbug/issues/detail?id=1707 .

理论上,我可以编写一个程序来简单地打开 HTTP 套接字并模拟浏览器“用户代理”,但这对于我的目的来说似乎很麻烦。当我问的时候,有人知道一个好的 Java/C# 库,其中包含模拟 HTTP header 并解析接收到的 HTML/JS 的函数/对象吗?我长期以来一直梦想着这样一个库的存在,但我尝试过的大多数库(Java 的 Apache HttpClient、C# 的 System.Net.HttpWebRequest)都太低级,无法在最少的规划和短时间内做出任何有值(value)的事情时间。

预先感谢您提供的建议和建议!

最佳答案

不确定我的理解是否正确,但如果您想更改加载的 URL,可以通过设置 window.location.href 来实现。如果您的目的是替换 DOM 内置对象,那么您会很难过,大多数内置对象(宿主对象)都不是常规的 JavaScript 对象,并且它们的行为没有明确定义。某些浏览器可能允许您替换和/或扩展某些对象,而在其他浏览器中它们根本不可替换/可扩展。

如果您想使用 JavaScript“编写浏览器脚本”,您绝对应该看看 node.js它是 http module 。还有一个名为 html5 的第三方模块它模拟了 Node.js 中的 DOM,甚至允许使用 jQuery。

关于javascript - 如何在运行时修改/"Spoof"标准浏览器JS DOM对象(Window.location)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6208929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com