delphi webbrowser,如何调整webbrowser里面打开网页的大小,或者使打开的内容适应webbrowser控件的大小。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi webbrowser,如何调整webbrowser里面打开网页的大小,或者使打开的内容适应webbrowser控件的大小。相关的知识,希望对你有一定的参考价值。

我要的效果是打开的网页确保都显示在webbrowser中。怎样调整webbrowser里面打开网页的大小呢?谢谢哪位大侠了

参考技术A 这个要浏览器支持,ie6不支持缩放,到IE7以上好像就可以了追问

那么怎么实现缩放呢,我系统里是IE9啊,行的话最好有代码本人菜鸟一个,成功的话一定再给你加分。。。。

追答

WebBrowser1.OleObject.Document.Body.Style.zoom :=2;
就能放大2倍

重大或有趣的对象属性:

WebBrowser.OleObject.Document
WebBrowser.OleObject.Document.All
WebBrowser.OleObject.Document.bgColor
WebBrowser.OleObject.Document.Body.Style.overflowX
WebBrowser.OleObject.Document.Body.Style.overflowY
WebBrowser.OleObject.Document.Body.Style.zoom
WebBrowser.OleObject.Document.cookie
WebBrowser.OleObject.Document.documentElement.innerhtml
WebBrowser.OleObject.Document.documentElement.innerText
WebBrowser.OleObject.Document.FileSize
WebBrowser.OleObject.Document.Frames
WebBrowser.OleObject.Document.Images
WebBrowser.OleObject.Document.LastModified
WebBrowser.OleObject.Document.Links
WebBrowser.OleObject.Document.Location.Protocol
WebBrowser.OleObject.Document.ParentWindow
WebBrowser.OleObject.Document.ParentWindow.ScrollBy (九:整数; iY :整数)
WebBrowser.OleObject.Document.selection
WebBrowser.OleObject.Document.Title
WebBrowser.OleObject.Document.URL

追问

我照你的方法做有些网址是可以的,很酷可是我纳闷的是,为什么还有很多网页就不行,例如,Browser1.Navigate('http://zhidao.baidu.com/');
用这个知道首页网址是可以的,而Browser1.Navigate('http://zhidao.baidu.com/question/381672313.html?fr=im100401');就是这个问题的地址,就不行呢那?这个让我狠纳闷。有什么解决办法吗?我知道分数不是最重要的,但是如果这个问题解决的话我会将分数提到最高。再麻烦您费神费力。。。

追答

var
zoom:OleVariant;
begin
zoom:=200;
WebBrowser1.ExecWB(63,2,zoom,EmptyParam);

这样就可以放大了,参数参考http://www.dreamincode.net/forums/topic/169749-webbrowser-olecmd-optical-zoom/

追问

我在FormCreat事件放的Browser1.Navigate(),在buttonclick里放的你给的哪几句,这样做运行时有个错误:‘试图吊销一个未注册的拖放目标’,该怎么办呢?

追答

晕,你的ie几啊,我的ie9没问题的,win7+d7+ie9

本回答被提问者采纳

Delphi WebBrowser调用WebSocket 服务

webSocket Demo
  1. 使用工具:WebBrowser
  2. 传输参数:delphi 给js 赋值JSON字符串,js 接收到后通过JSON.parse()方法转换成JSON对象,然后根据需要参数进行读取, Delphi 通过SuperObject 处理JSON数据
  3. 调用JSON方法:WebBrowser1.oleObject.document.parentWindow.execScript(\'js方法名\',\'JavaScript\')
  4. 设置js变量 :WebBroser1.oleObject.document.Script.str:=\'newvalue\'; str为js定义变量
  5. Delphi 触发html 中的Button 单击事件:WebBrowser1.OleObject.document.getElementById("按钮id").click;
unit uWebSocketDemo;

  webSocket Demo
  使用工具:WebBrowser
  传输参数:delphi 给js 赋值JSON字符串,js 接收到后通过JSON.parse()方法转换成JSON对象,然后根据需要参数进行读取,
  Delphi 通过SuperObject 处理JSON数据
  调用JSON方法:WebBrowser1.oleObject.document.parentWindow.execScript(\'js方法名\',\'JavaScript\')
  设置js变量 :WebBroser1.oleObject.document.Script.str:=\'newvalue\';  str为js定义变量
  Delphi 触发html 中的Button 单击事件:WebBrowser1.OleObject.document.getElementById("按钮id").click;
  

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    WebBrowser1: TWebBrowser;
    Button8: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button8Click(Sender: TObject);
  private
     Private declarations 
  public
     Public declarations 
  end;

var
  Form1: TForm1;

implementation

$R *.dfm
uses superobject,ShellAPI;

var
  url:string;
  jo:TSuperObject;
  path:string;
const
  sStu=\'"title":"我的websocket","content":"websocket测试客户端"\';
procedure TForm1.Button1Click(Sender: TObject);
begin
  webbrowser1.Navigate(url);
  WebBrowser1.Silent:=True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  url:=ExtractFilePath(ParamStr(0))+\'demo-dip.html\';
  path:=ExtractFilePath(ParamStr(0))+\'\\HOAssistant\\HOAssistant\\HOAssistant.exe\'

end;

procedure TForm1.Button2Click(Sender: TObject);
var
  obj:OleVariant;
begin
  WebBrowser1.OleObject.document.Script.str:=sStu;
  WebBrowser1.OleObject.document.parentWindow.execScript(\'ftest()\',\'JavaScript\');

  Memo1.Lines.Add(WebBrowser1.OleObject.document.Script.str);

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  WebBrowser1.OleObject.document.getElementById(\'btnlogin\').click;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
   WebBrowser1.OleObject.document.getElementById(\'btnpatient\').click;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
     WebBrowser1.OleObject.document.getElementById(\'btnbingan\').click;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
   WebBrowser1.OleObject.document.getElementById(\'btnexit\').click;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
   webbrowser1.Navigate(url);
   WebBrowser1.Silent:=True;

end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  ShellExecute(Handle,\'open\',PAnsiChar(path),nil,nil,SW_SHOWNORMAL);
end;

end.

以上是关于delphi webbrowser,如何调整webbrowser里面打开网页的大小,或者使打开的内容适应webbrowser控件的大小。的主要内容,如果未能解决你的问题,请参考以下文章

delphi中的webbrowser ,如何获取网站返回状态码

DELPHI中的webbrowser如何有效防止内存疏漏

<总结>delphi WebBrowser控件的使用中出现的bug

delphi中 WebBrowser如何控制Frame下面的元素

DELPHI如何实现打开某一个网页没webbrowser组件

如何单击按钮类 WebBrowser Delphi