超高难度问题,挑战CSDN群雄

dnchen 2000-02-23 12:33:00
我试图在IE BHO中修改当前网页源代码,使其符合我需求,但是每次修改后的页面 (doc.writeln),IE都以新文件的形式(url为about:about)形式出现,现求一种合适的方法,使我的修改仍然体现在当前网页中。

本问题在Experts Exchange中悬赏高达1100分,仍未得解。前提:不准用mimefilter!

能回答者可以获得全部670点,但需要有原程序,如果在expert exchange中有帐户,另可获得1100点悬赏,如在大富翁有帐户,可以获得大富翁最高允许悬赏金额300
...全文
1295 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
dnchen 2001-05-09
  • 打赏
  • 举报
回复
我很讨厌自己编写浏览器,说实话,自己写浏览器不过是三分钟可以搞定的事情,但是任何浏览器都是无法替代ie的,即使你是基于ie的,

TechnoFantasy 2001-05-09
  • 打赏
  • 举报
回复
访问Document的Body,然后通过Body对象的appendChild、createTextRange 等方法添加
页面元素到页面中,基本上还是使用了MSHTML。
ReganCai 2001-05-09
  • 打赏
  • 举报
回复
关注
tcjzy 2000-08-04
  • 打赏
  • 举报
回复
“溯雪”不是可以修改页面的吗。而且cgi照用不务啊。
Michaelyfj 2000-08-03
  • 打赏
  • 举报
回复
哇噻,好高的分啊!250+250+250-80
JGTM2000 2000-08-02
  • 打赏
  • 举报
回复
我以前也曾想过,利用mimefilter或者async pluggable protocol来实现。令人郁闷的是其他协议都可行,就是http不能重载。不爽。
mutant 2000-03-09
  • 打赏
  • 举报
回复
MSHTML库中好像有对象可以直接操纵Script和Applet,好像是IHTMLScriptElement,不知道可不可用?
如果可以的话,可以浏览到一个新页面时强制执行一个JavaScript,应该就可以了。
我没有试过,不知道对不对。
dnchen 2000-03-09
  • 打赏
  • 举报
回复
IhtmlXXXX对象都是对应当前的HTML文件的对象,如果文件内部没有<script></script>代码,就不存在这个对象。

不过似乎是可以创建的,我还没有看,但是即使创建,用户如果将javascript关闭的话,也死菜。

另外,我发现直接从外部修改网页中HTML对象,网页不会刷新的。
arthurxie 2000-03-08
  • 打赏
  • 举报
回复
唉,自己编写的web浏览器就可以内嵌代码修改功能.
想怎样就怎样.
SoftDIY 2000-03-08
  • 打赏
  • 举报
回复
ie5的saveas不知有没有CGI失效的问题。
dnchen:可否给出你在Experts Exchange这个问题的具体url,看看那里的建议,我们也参考一下
dnchen 2000-03-08
  • 打赏
  • 举报
回复
修改显示是生效了,可能你没有注意使用前进后退按牛,你会发现,你的修改造成了URL的变化,

如果你能够作到收到http://www.yahoo.com的时候,用程序修改页面,而当前页面的url不变的话,你就可以获得这些分数
ace 2000-03-08
  • 打赏
  • 举报
回复
不太明白你的意思,
你的意思是不是不光在页面上显示你的修改(这个应该是容易的,应该是即改即生效的),
而且显示源文件时,也显示出你修改的结果?(如果是这个,好像没什么办法,
我目前也有这个问题,不过我觉得你的第一个方法应该可行,一定要重刷新么?)
huiwsey 2000-03-04
  • 打赏
  • 举报
回复
我也想知道答案。
dnchen 2000-03-04
  • 打赏
  • 举报
回复
interesting没有用,这个帖子看来是没有人能够解决了
dnchen 2000-03-04
  • 打赏
  • 举报
回复
yxf的方法和softdiy的方法是一样的,所带来的问题我已经说了,不再赘述。

BHO是Browser Helper Object,是IE扩展接口。

to Un1:
这个问题是有解的,至少我已经有两个方法了:

1、有点偏门、iecache api去找到本网页再本地缓存里的对应文件,修改,然后将IE设置成offline,然后刷新,然后改回online.

2、实用性差一点、ie5.5里有一个ihtmldocument4对象提供专门函数修改代码,可惜,用的人太少,最主要的原因是ie5.5的BUG太多
yxf 2000-03-04
  • 打赏
  • 举报
回复
1.复制一份网页
2.修改网页
3.刷新网页
4.IE BHO是啥?能否告诉我?
我的Mail:stlxv@21cn.com
Un1 2000-03-04
  • 打赏
  • 举报
回复
dnchen:
可能这个问题真是无解了,不过条条大路通罗马,注意编程方案只是手段,你最终要的问题可能换一种方式能就能解决,未必一定要这样做!
Un1 2000-03-03
  • 打赏
  • 举报
回复
我用的是VB不是Delphi, 在VB中可以使用控件数组。因为ScriptLet的Url是只读属性因此在设计时使用一个Temp文件,然后先生成这个路径的新文件,然后动态Load和此控件一样的另一个控件,一定程度上实现了Url的动态加载。
sundaynews 2000-03-03
  • 打赏
  • 举报
回复
interresting
ace 2000-03-02
  • 打赏
  • 举报
回复

我没做过试验,不过我觉得不会复杂吧.
我记得ms自带的bho的例子就是直接在上面修改网页的吧
你连结到IDocument2上直接修改它的innerHtml不行么?
加载更多回复(15)

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧