在firefox当前页面中替换字符串

时间:2012-12-24 08:13:00

标签: .net vb.net winforms firefox

我想在firefox当前页面html中替换字符串(“123”和“111”)。

说明:

我打开firefox,然后我导航到:

www.site.com/print.php?string=123

我要等到文档满载

页面html:

<html>
<body>
123
</body>
</html>

我正在用“111”替换字符串“123”。

代码应如下所示:

        openff("http://www.site.com/print.php?string=123") 'open url
again:
        For Each p As Process In Process.GetProcessesByName("firefox") 'wait until page is fully loaded
            If p.MainWindowTitle = "123 page title" Then
                Exit For
            Else
                Application.DoEvents()
                GoTo again
            End If
        Next
        replaceInFFcurrentDocHtml("123", "111") 'Replace the string!!!

函数replaceInFFcurrentDocHtml()实际上并不存在。

在firefox当前页面html中有一个函数可以replace字符串吗?

get来自firefox的当前html的功能?

(我试图通过spy ++使用句柄和窗口获取html,但这种方式不起作用)

2 个答案:

答案 0 :(得分:0)

这本身并不是“黑客攻击Firefox”,但它可能有效。

使用WebClient并将网站内容作为字符串下载,使用您可能真正需要的内容调用该字符串上的替换,并将结果写入临时html文件。最后,要么专门调用firefox打开所述html文件,要么操作系统解析哪个应用程序应该使用Process.Start打开它。

我相信Firefox(出于安全原因,没有浏览器应该)允许对DOM进行外部修改。这是唯一有效的方法,无需对Firefox代码进行一些复杂的修改。

另外,一个很好的提示:不要使用GoTo,its a bad idea

答案 1 :(得分:0)

您可以编写和Firefox扩展来修改页面内容,许多扩展都会这样做。

或者我相信Greasemonkey脚本也可以做同样的事情,https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/