获取浏览器&x27;从另一个应用程序删除当前HTML

获取浏览器&x27;从另一个应用程序删除当前HTML,html,automation,Html,Automation,我正在尝试构建一个应用程序,该应用程序可以读取(最好是通过事件或类似smthg的方式)浏览器当前HTML的变化 我的主要目的是构建某种功能,允许对某些页面进行单点登录,因此我需要知道每次页面加载完成后,检查HTML并设置一些字段值,例如 我知道不同浏览器的实现可能不同,但IE和/或Firefox将是一个很好的开始 即使在谷歌上到处搜索,我也无法接近如何实现这一点。我想,也许,但仅仅是也许,我可以使用Windows API将某种控件附加到浏览器的窗口,但我试图相信(至少到目前为止)还有更简单的方法

我正在尝试构建一个应用程序,该应用程序可以读取(最好是通过事件或类似smthg的方式)浏览器当前HTML的变化

我的主要目的是构建某种功能,允许对某些页面进行单点登录,因此我需要知道每次页面加载完成后,检查HTML并设置一些字段值,例如

我知道不同浏览器的实现可能不同,但IE和/或Firefox将是一个很好的开始

即使在谷歌上到处搜索,我也无法接近如何实现这一点。我想,也许,但仅仅是也许,我可以使用Windows API将某种控件附加到浏览器的窗口,但我试图相信(至少到目前为止)还有更简单的方法。:)

任何一种想法都会非常感激

问候,


Filipe从外部应用程序执行此操作将是一项奇怪的任务。您必须设置几十个最复杂的查询机制,并且可能会被安全措施关闭。像这样的东西就是浏览器扩展的用途

此外,即使源代码已完全加载,也不意味着页面已准备就绪。在扩展中,您只需挂接onLoad事件,并拥有一个干净、正确解析的DOM供您使用


也许可以为每个浏览器编写多个扩展,并让这些扩展与应用程序通信。那样的话,这其实很容易。扩展将侦听onload事件,然后为您传递所有HTML。(这是一个主要的隐私问题,不管你用哪种方式做,因为HTML可能包含各种各样的东西,但那是另一回事)。能否做到这一点,取决于扩展模型是否允许与外部进程通信。

从外部应用程序实现这一点将是一项奇怪的任务。您必须设置几十个最复杂的查询机制,并且可能会被安全措施关闭。像这样的东西就是浏览器扩展的用途

此外,即使源代码已完全加载,也不意味着页面已准备就绪。在扩展中,您只需挂接onLoad事件,并拥有一个干净、正确解析的DOM供您使用


也许可以为每个浏览器编写多个扩展,并让这些扩展与应用程序通信。那样的话,这其实很容易。扩展将侦听onload事件,然后为您传递所有HTML。(这是一个主要的隐私问题,不管你用哪种方式做,因为HTML可能包含各种各样的东西,但那是另一回事)。能否做到这一点,取决于扩展模型是否允许与外部进程进行通信。

我猜有更直接的方法可以做到这一点,但是Greasemonkey呢?您可以编写一个GM脚本,获取当前页面的HTML,然后通过Ajax将其发送到您的应用程序(当然,您的应用程序必须运行一个小型HTTP服务器)。如果通用汽车有限,你也可以编写一个Firefox扩展,为你提供一些更复杂的选项。

我猜有一种更直接的方法可以做到这一点,但是Greasemonkey呢?您可以编写一个GM脚本,获取当前页面的HTML,然后通过Ajax将其发送到您的应用程序(当然,您的应用程序必须运行一个小型HTTP服务器)。如果GM太有限,您还可以编写一个Firefox扩展,为您提供一些更复杂的选项。

要使用Internet Explorer实现这一点,您必须构建一个Browser Helper对象,以便与浏览器发布的有关当前页面配置的事件挂钩。这绝不是一项简单的任务,需要大量特定于Windows的编程。我认为不写BHO是不可能的,从技术上讲,BHO是“在应用程序内部”,因为你必须将它安装到IE中


要使用Internet Explorer执行此操作,您必须构建一个浏览器帮助对象,以便与浏览器发布的有关当前页面配置的事件挂钩。这绝不是一项简单的任务,需要大量特定于Windows的编程。我认为不写BHO是不可能的,从技术上讲,BHO是“在应用程序内部”,因为你必须将它安装到IE中


创建本地代理怎么样?有一个名为Proxomitron的广告过滤应用程序,可以作为您的模型。

创建一个本地代理怎么样?有一个名为Proxomitron的广告过滤应用程序,可以作为您的模型。

我在Internet Explorer中找到了一种使用ShDocVw(Microsoft Internet控件)实现这一点的方法:

ShDocVw包含一些类,允许您监视现有和新的浏览器导航(docCompleted、download等)。下一步是找出如何写入DOM(可能很简单,我还没有尝试)

Firefox将是另一部小说,但IE现在已经足够了

谢谢大家


Filipe

我发现了一种在Internet Explorer中使用ShDocVw(Microsoft Internet控件)实现这一点的方法:

ShDocVw包含一些类,允许您监视现有和新的浏览器导航(docCompleted、download等)。下一步是找出如何写入DOM(可能很简单,我还没有尝试)

Firefox将是另一部小说,但IE现在已经足够了

谢谢大家


菲利佩(Filipe)

古怪的做法几乎是不可能的。我能想到的唯一方法是直接连接到特定操作系统的TCP/IP堆栈。没有可以想象的回报,这将使它工作的努力。+1,让你到10K代表!干得好:)。。。回答一个奇怪的问题!稀奇古怪的接近根本不可能。这个