1:TWebBrowser中,如何跳转到书签位置?
2:我TWebBrowser动态加载html文本,当点击内部连接(书签)跳转,
会出错:Blank#XXXX
把源代码拷贝到ForontPage中,进行 预览 点击就正常!

解决方案 »

  1.   

    1.不难啊?
    WebBrowser.Navigate('http://www.xxx.com/index.htm#test'); 2.动态?你怎么做的?
      

  2.   

    to ehom(?!) 就是是直接加载文本字符串啊!这是俺以前做的个公共过程:Procedure BrowserHtmlText(Browser:TWebBrowser;HtmlText: string);
    // ┏━━━━━━━━━━━━━━━━━━━━┓
    // ┃               【过程】                 ┃
    // ┃过程说明:浏览网页文本                  ┃
    // ┃过程输入参数:浏览器,网页文本          ┃
    // ┃过程整理:赵建强                        ┃
    // ┃过程创建日期:2002.10.10                ┃
    // ┃过程版本:1.0                           ┃
    // ┃注意:                                  ┃
    // ┃      uses中加入mshtml,activex;         ┃
    // ┃      调用本过程一定要保证浏览器有浏览  ┃
    // ┃  内容时才能够正常工作否则出错,当你没有┃
    // ┃  可浏览内容是可以在窗体显示事件中加入:┃
    // ┃  WebBrowser1.                          ┃
    // ┃      OleObject.Navigate('about:blank');┃
    // ┃历史日志:                              ┃
    // ┗━━━━━━━━━━━━━━━━━━━━┛
    var
       HTMLDocument: IHtmlDocument2;
       vv:oleVariant;
    begin
        HTMLDocument:= Browser.Document as IHtmlDocument2;
        if (Assigned(HTMLDocument)) then
        begin
            vv := VarArrayCreate([0, 0], varVariant);
            vv[0] := HtmlText;
            HTMLDocument.Write(PSafeArray(TVarData(vv).VArray));
            HTMLDocument.Close;
        end;
    end;
      

  3.   

    哦?原来你指的动态是这个!首先你要明白动态加载,比如Navigate('about:test');有什么效果?也就可以明白about:blank,中的blank就是空白的意思!而点击链接后实际上会用当前地址加上相对地址,而你这动态页面当前页是about:blank(空)啊,所以不就成了about:blank#XXXX,显示出来不就是上面的blank#XXXX!
      

  4.   

    用 Navigate('about:test');初始化页面字符就是'test'了书签跳转照样出现错误:blank#XXXX!那么有没有好的办法啊!跳到书签位置!!!谢谢!!
      

  5.   

    没看懂我上面的意思吗?比如在页面http://www.xxx.com/test.htm中点击链接(<a href="#test>test</a>")就会跳转到 http://www.xxx.com/test.htm#test即http://www.xxx.com/test.htm + #test而现在是about:blank + #test不就成了about:blank#test,显示出来不就是blank#testWebBrowser不过是对COM的封装还是用临时文件吧,FP不也是用的临时文件吗?