gpt4 book ai didi

javascript - 覆盖 Webbrowser 控件上的 window.location

转载 作者:行者123 更新时间:2023-11-29 22:38:20 25 4
gpt4 key购买 nike

这似乎是一个奇怪的问题,但是有没有一种方法可以在不让浏览器控件导航到它的情况下覆盖 window.location?我遇到的问题是我在控件中注入(inject) html 代码,并且 window.location 是关于:空白 - 导致某些 javascript 代码出错。试图让他们认为他们在 about:blank 以外的 URL 中

最佳答案

document.documentMode >= 9 (IE9+) 时,我使用 Object.defineProperty() 取得了成功。

为了在 IE9+ 模式下获取 WebBrowser 控件,我首先加载以下 URL:

about:<!doctype html><meta http-equiv="X-UA-Compatible" content="IE=edge">

这在最新文档模式下给出了一个大部分为空的文档。

然后重新定义 window.location,我通过 eval() 或 document.write() 执行一些脚本:

Object.defineProperty(window, 'location', {value: {href: 'fubar'}});

完整的顺序是这样的:

  • 加载控件。
  • 等待 WebBrowser.ReadyState == 4DocumentComplete 事件。
  • 调用document.open()(重要)。
  • 评估或编写重新定义位置的脚本。
  • 编写 HTML 内容。
  • 调用 document.close()(确保调用 onload)。

注意:我使用 ActiveX WebBrowser控件,而不是作为该控件包装器的 .NET 组件。它可能在 .NET 中同样有效。

关于javascript - 覆盖 Webbrowser 控件上的 window.location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4138582/

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