首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

动态修改浏览器中地网页页面具体内容解决方案

2012-02-22 
动态修改浏览器中地网页页面具体内容想实现动态地监视当前页面中地具体内容,假如具体内容符合条件就动态地

动态修改浏览器中地网页页面具体内容
想实现动态地监视当前页面中地具体内容,假如具体内容符合条件就动态地替换掉,例如:  
  网页页面中有1张来自CSDN地图片,俺要将它替换成1段文本。
奈何俺这方面的实力较差,才刚起步,不知道各位大大能否给俺一个例子之类的,先感谢下,听人家说,重新解析APP什么的可以,但是不知道怎么整

[解决办法]
执行javascript
[解决办法]
执行
javascript:document.body.contentEditable= 'true '; document.designMode= 'on '; void 0
任意编辑网页

再执行
javascript:document.body.contentEditable= 'false '; document.designMode= 'off '; void 0
保存编辑好的页面。。。。你试试就知道了。IE里
[解决办法]
看到你的留言了,目前正向学习这方面的东西,代码是没有了不过思路有1个

1 delphi里面有个webbrowser,可以加载网页,同时,你可以更改他加载到的数据
procedure DoChangePageCode(Doc: IDispatch);
 var
tr: IHTMLTxtRange;
s: string;
 begin
tr := ((Doc as IHTMLDocument2).body as IHTMLBodyElement).createTextRange;
s := tr.htmlText; // 取出页面的代码
// 此处就能随意改了
tr.pasteHTML(s); // 改完后的代码写回去
 end;

2 如果你需要修改第三方浏览器例如ie,恐怕需要dll注入了,那么学一下钩子以及 textout这个函数吧,因为以前用的不多,你还是请教其他高人吧,这里有个例子,可以参考下
http://apps.hi.baidu.com/share/detail/1973745
[解决办法]
可以嘗試用delphi webbrowser組件或IHTMLDocument2加載其頁面,然後用javascript然取出值,然後再動態修改回去。。。

Delphi(Pascal) code
unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm1 = class(TForm)    Memo1: TMemo;    Button1: TButton;    Edit1: TEdit;    Label1: TLabel;    procedure Button1Click(Sender: TObject);  end;var  Form1: TForm1;implementation{$R *.dfm}uses ComObj;{此函数需要 ComObj 单元的支持}{参数 JsCode 是要执行的 Js 代码; 参数 JsVar 是要返回的变量}function RunJs(const JsCode, JsVar: string): string;var  script: OleVariant;begin  try    script := CreateOleObject('ScriptControl');    script.Language := 'JavaScript';    script.ExecuteStatement(JsCode);    Result := script.Eval(JsVar);  except    Result := '';  end;end;procedure TForm1.Button1Click(Sender: TObject);var  s: string;begin  s := RunJs(Memo1.Text, 'str');  ShowMessage(s);end;end.
[解决办法]
可插入异步协议(APP)应该可以,但是网上的示例都是C++的,而且只作用于一台计算机。如果你做解决方案的话,这个没什么用。一般的做法都是在网关级别就换掉了,到客户机器的时候已经是处理好的了。
[解决办法]
var
links:variant;
i:integer;
linkstr:string;
begin
links:= wb.oleobject.document.links;
for i:=0 to links.length-1 do begin
linkstr:= links.item(i).innerhtml;
linkstr:=StringReplace(linkstr,'贴吧','QQ',[rfReplaceAll]);
links.item(i).innerhtml := linkstr;
end;
end;
end;

如此即可!
[解决办法]
探讨
引用:

var
links:variant;
i:integer;
linkstr:string;
begin
links:= wb.oleobject.document.links;
for i:=0 to links.length-1 do begin
linkstr:= links.item(i).innerhtml;
link……

……

[解决办法]
沒有什麼不能換的

所看到的是IE下載網頁后解析給你看的。就算是JS或者其它動態產生的數據,只要有遠程的鏈接比如更換一張圖片WebBrowser都會有所反應。等它反應完成再進行替換操作即可

你說的雙色球可能是文字非鏈接,也可能是圖片。要根據實際情況來判斷。

不明白的可參考 http://hi.baidu.com/szba/blog/item/9a0e5c1eed0431fc1bd57697.html

自己多嘗試。

热点排行