我的 C++ 程序启动 Internet Explorer(它适用于 IE6 到 IE10)以在 Internet 上显示一些网页;我没有办法修改网页。该网页引用了一个 JavaScript 文件(使用<script>
HTML 标记中的一个标签)——一个swfobject JavaScript 库的副本。我希望网页使用我提供的此文件的自定义副本。
我想出了两种可能的方法来解决这个问题
编写 Internet Explorer 连接的代理服务器;代理获取实际数据,然后重写 HTML,以便引用我自己的 swfobject 副本。不幸的是,这是一项相当多的工作,并且可能不适用于 https。我现在可以在不支持 https 的情况下生活。
为 Internet Explorer实现一个异步协议插件,拦截所有 http 请求。我知道 JavaScript 文件总是使用 http 检索,所以我可以拦截对 swfobject JavaScript 文件的访问并生成我自己的文件。唉,这似乎也是不可能的,微软支持页面解释说
Internet Explorer 会忽略用 CLSID 以外的值覆盖 HKEY_CURRENT_ROOT\PROTOCOLS\Http 的幼稚尝试
这听起来像用自定义协议处理程序挂钩“http”是行不通的;无论如何,如果存在现有的 http 协议处理程序,这种方法也会有问题。
有没有比这两种方法更好的方法来解决这个问题?