我主要关心的是选中的文字及图片,是文字则取出文字,是图片,则取出其链接。网上看到一些例子,但用起来似乎得不到。
哪位能讲讲思路,有代码指示更好,希望是经过实践检验的。
初次涉及到这个方面,很多地方不懂,请多指教。

解决方案 »

  1.   

    看了一个采用IHTMLSelectionObject取得IHTMLTxtRange来取得文本的,但不知道怎么取图片。
      

  2.   

    图片应该属于ControlRange吧,但我选中图片、编辑框等时,通过Selection的type属性得到仍为text。还有一种方法是自己直接解析选中的html标记,但我只关心文字及图片,其它的元素不知道怎么去掉。今天还有没有大虾在啊,是不是都渡假去了?指教一下吧。
      

  3.   

    呵呵,网页中的东西你可以用xmlhttp就能得到了啊,这个到处都有代码的
      

  4.   

    现在我都对使用这种接口形式的比较熟悉了,不想去看其它的了,况且,它只是帮助我实现一个小功能。如果实在不行的话,我已经决定自己解析html了。现在还有一个问题:
    我是通过IE的右键菜单(通过一个vbs脚本,就是很多软件对IE右键菜单扩展的做法)调用ATL写的COM接口,想把IHTMLDocument2作为参数传到接口中,在VBS中应该是external.menuArguments.document这个吧,那么COM接口的参数类型应该是什么呢?LPDISPATCH?发现传不进来。
      

  5.   

    你说的这个用vbs就是正则加解析,这个代码很容易的,还有如果你用webbrowser的话 还有更简单的方法比如说getElementsByTagName("A")或者是getElementsByTagName("img")方法多多呢
      

  6.   

    没有用webbrowser控件,是做成任何基于webbrowser右键菜单扩展。现在比较想将document指针(不知道能不能称为指针?)传到处理DLL中去,但不知道应该用什么参数。当然其实在vbs中就可以把htmltext给提取出来,不过我想有了document接口,自己的控制权要大一些。我的需求是将选中的文字和图片提取出来,而且它们在网页中的先后的顺序不能变。你说的getElementByTagName方法应该不能保证它们的先后顺序吧,只能文字归文字,图片归图片,它们分离的。最好就是能直接遍历所选中的对象。createrange只能针对文字。
      

  7.   

    自己解析时在解析图片的URL时出现了麻烦,想用vbs得到hostname居然提示没有权限,我是这么写的:
    external.menuArguments.document.location.hostname
    请问这是怎么回事?怎样可以得到图片的绝对URL?
      

  8.   

    晕,发现可以直接把external.menuArguments.document传给COM接口,使用LPDISPATCH可以接收,前面我弄错了,<>0 表示不成功,我原以为是成功。