GVKun编程网logo

swt browser控件与java交互(java swing webview)

11

如果您想了解swtbrowser控件与java交互的相关知识,那么本文是一篇不可错过的文章,我们将对javaswingwebview进行全面详尽的解释,并且为您提供关于c#–.netWebbrowse

如果您想了解swt browser控件与java交互的相关知识,那么本文是一篇不可错过的文章,我们将对java swing webview进行全面详尽的解释,并且为您提供关于c# – .net Webbrowser控件显示不一样、c# – Windows窗体WebBrowser控件和iframe、c# – 从WebBrowser控件中删除边框、c# – 在WebBrowser控件中,window.external不可用的有价值的信息。

本文目录一览:

swt browser控件与java交互(java swing webview)

swt browser控件与java交互(java swing webview)

1、java调用browser页面里的js

 

[javascript] view plain copy

  1. final Browser browser = new Browser(shell, SWT.FILL_WINDING);  
  2. browser.evaluate("fun()");//fun是一个定义好的js函数  


2、js中调用java函数

 

写一个类继承BrowserFunction类

 

[java] view plain copy

  1. import org.eclipse.swt.browser.Browser;  
  2. import org.eclipse.swt.browser.BrowserFunction;  
  3. public class CallJava extends BrowserFunction {  
  4.   
  5.     public CallJava(Browser browser, String name) {  
  6.         super(browser, name);  
  7.     }  
  8.   
  9.     @Override  
  10.     public Object function(Object[] arguments) {  
  11.         System.err.println(arguments);  
  12.         return super.function(arguments);  
  13.     }  
  14.   
  15. }  


将这个类注册为一个回调方法:

 

 

[java] view plain copy

  1. new CallJava (browser, "myCallJava");//注意注册的回调方法名字,不要与类名相同,否则将无法正常调用(不要将名字设置为callJava)  

 

在页面js中调用这个myCallJava方法

 

[javascript] view plain copy

  1. function fun(){  
  2.       var arguments = ''abc'';  
  3.       myCallJava(''abc'');//此时执行CallJava类中的function方法,arguments为传入参数  
  4. }  

c# – .net Webbrowser控件显示不一样

c# – .net Webbrowser控件显示不一样

您好我的webbrowser控件有问题.

页面没有像ie那样显示



正如您所看到的顶级菜单不起作用,许多网站都出现了问题

解决方法

可能出现的一种方法是浏览器决定以兼容模式呈现.意思是IE决定修复Web开发人员的垃圾,而webbrowser控件不会自动执行此操作.

最好的办法是在网站中使用正确的html doc类型.当然,我们都知道大多数“网络程序员”并不知道这意味着什么,而且您可能无法控制人们可能会使用您的应用访问的网站.

也就是说,请查看以下内容.它显示了在加载页面时如何将标题插入网页以强制webbrowser控件使用兼容模式.

更新决定链接不是很好.

看到这一个:
How do I turn off Compatibility View on the IE WebBrowserControl in a WinForms app?

c# – Windows窗体WebBrowser控件和iframe

c# – Windows窗体WebBrowser控件和iframe

我正在尝试创建一个软件来或多或少地自动化网页上的表单填充 – 我决定在System. Windows.Forms中使用Webbrowser控件.这很好用,我可以通过webbrowser.Document轻松操作 DOM等等.然而不幸的是,我正在进行自动化的网站有一个在iframe内运行的文件上传 – 这就是我被卡住的地方,我根本无法弄清楚如何能够操纵iframe的DOM内部的元素.

理想情况下,我想做的是:

HtmlElement iframe = browser.Document.GetElementById("iframe_id");
iframe.InnerDocument.GetElementById("file_upload_input").SetAttribute("value","myfile.txt");

然后在iframe中提交表单 – 当然,就我所见,HtmlElement上没有InnerDocument属性,也没有找到我可以将HtmlElement转换为可以访问内部DOM的类型.

怎么做的?

解决方法

请尝试使用“frames”集合.从 MSDN开始:

The iframe element functions as a
document within a document,or like a
floating frame. The frames collection
provides access to the contents of an
iframe. Use the frames collection to
read or write to elements contained in
an iframe.
For example,the Syntax for
accessing the backgroundColor style of
the body object in an iframe is:

sColor = document.frames(“sFrameName”).document.body.style.backgroundColor;

c# – 从WebBrowser控件中删除边框

c# – 从WebBrowser控件中删除边框

我有一个Webbrowser控件坐在一个Form上,它周围有一个恼人的2px嵌入式边框.它导致我的内容被右侧和底部的4像素剪辑,我无法弄清楚如何摆脱它.控件本身没有任何BorderStyle属性 – 如何删除边框?

查看屏幕截图中的红色区域:

Make it stop! http://img229.imageshack.us/img229/8342/badbadwebbrowser.gif

我希望Webbrowser看起来像蓝色区域 – 也就是说,填充Form并与Form的边缘齐平.

解决方法

IE将其绘制为body标签上默认样式的一部分.在body元素上设置border:0px并且它会消失.

谢天谢地,这是going away in IE9.

c# – 在WebBrowser控件中,window.external不可用

c# – 在WebBrowser控件中,window.external不可用

我想在Webbrowser控件中调用C#方法.以下是我的代码:

在XAML中,

<phone:Webbrowser Margin="0,0" Name="WebbrowserForDetails" VerticalAlignment="Top" Height="300" ScriptNotify="WebbrowserForDetails_ScriptNotify" IsScriptEnabled="True" />

在C#中,

protected override void OnNavigatedTo(NavigationEventArgs e)
{

    string html = string.Format("<html><head><title></title><script type=\"text/javascript\">{0}</script></head><body><button onclick=\"call();\">Push</button>","function call(){ window.external.notify(123) ;}");
    WebbrowserForDetails.NavigatetoString(html);
}

private void WebbrowserForDetails_ScriptNotify(Object sender,NotifyEventArgs e)
{
    Debug.WriteLine(e.Value);
}

预计在调试窗口中看到123.

当< button> Push< / button>被推,window.external.notify永远不会被调用.实际上,window.external不可用.我想从Webbrowser控件调用window.external.notify函数来调用WebbrowserForDetails_ScriptNotify方法.我该怎么办?

编辑

参考链接:MSDN: window.external.notify,Any way to set the WP7 Webbrowser control height Dynamically and lock scrolling?和Displaying HTML Content in Windows Phone 7

解决方法

你的代码看似正确,但window.external.notify()方法是String参数,而不是Integer.请尝试使用window.external.notify(‘123’)调用. 希望这可以帮助.

今天的关于swt browser控件与java交互java swing webview的分享已经结束,谢谢您的关注,如果想了解更多关于c# – .net Webbrowser控件显示不一样、c# – Windows窗体WebBrowser控件和iframe、c# – 从WebBrowser控件中删除边框、c# – 在WebBrowser控件中,window.external不可用的相关知识,请在本站进行查询。

本文标签: