求助一个关于替换HTML页面JS脚本的问题
各位大哥好,我的意图是:制作一个BHO插件,当IE浏览器打开某网页时,搜索到网页加载的一个JS脚本,替换掉这行HTML代码,使之调用我本地的一个JS脚本。
我已初步实现该功能,但遇到一个关于刷新的问题,还请各位高手帮忙指点指点,非常感谢!
测试代码如下:
测试页面:
<html>
<script type="text/javascript" src="F://a.js"></script>
<input type="submit" name="btnLogin" value="测试" onclick="showa()">
<body>
</body>
</html>
a.js(假设这个是页面原本要加载的js):
function showa()
{
alert('a');
}
b.js(假设这个是我要替换为我本地的js):
function showa() // 与 a.js 的函数保持一致
{
alert('b'); // 但执行的是另一段内容
}
实现方法:
响应 OnDocumentComplete 事件,首先 get_Document,然后 get_scripts,接着遍历得到的 IHTMLElementCollection,最后查找需要替换的 IHTMLElement ,设置其属性 src="F://b.js" 。
经测试,已可以实现替换JS的效果(点击按钮时,弹出"b"),但问题是:如果此时页面刷新,再点击按钮时又恢复了a.js(点击按钮时,弹出"a"),而且页面刷新时,不会再次响应 OnDocumentComplete 事件!
不知哪位大哥有这方面的经验和心得,还望不吝指点,万份感谢!
PS:我以前做过一个类似的项目,将页面上的一段HTML替换为某种自定义协议的link,当点击该link时,调用我们的一个软件(类似于迅雷下载),当时页面刷新没什么问题的,不知为何现在不行了