0

我试图找出是否有标准或推荐的方式从 javascript 到嵌入浏览器小部件的应用程序进行通信,反之亦然。托管应用程序可以用 java 或 c++ 编写,并且可以在 Windows 和 Unix 平台上运行,但 javascript 将在两个客户端之间共享。

到目前为止,我已经阅读了:

  • window.external (这似乎是特定于 IE 的,所以它不适用于 Unix。)
  • LiveConnect(这似乎是特定于 java 和 mozilla 的,因此它不适用于基于 IE 或 c++ 的应用程序。)
  • SWT 的浏览器小部件具有一些这种功能,但这将是一个仅限 java 的解决方案。

还有哪些其他选择?

谢谢!希亚姆

4

2 回答 2

0

JavaScript has the XMLHttpRequest API that makes it possible to send data to, and retrieve data from a server. The use of this API with messages formatted in XML or JSON is designated AJAX.

AJAX can be used to implement the example you gave, of a tree node in the HTML/javascript that retrieves the list of children from the server when it is expanded. Note that when using AJAX, the server may be written in any language (C, Java, Python, Ruby, etc).

I suggest you to read about AJAX. After you get a good understanding of AJAX you can read a little bit about web services. web service is a method of communication of 2 applications developed in arbitrary programming languages through the WEB.

于 2012-04-10T20:36:50.893 回答
0

我们有一个承载 Microsoft 的WebBrowser 对象(IE) 的 VB6 应用程序。我们使用了一种简单的 URL 拦截机制来促进浏览器和托管应用程序之间的通信。由于浏览器控件有一个导航前界面,我们可以拉出 URL 并检查它是否有命令,然后取消导航事件(因为它是为托管应用程序准备的)或让它通过(因为它是一个普通的 URL) .

app://commandName?arg1=val&arg2=val我们在 Javascript 或 HTML 链接标签中使用了类似的东西。

然后在浏览器的 BeforeNavigate 事件中,我们检查 url,app://如果我们得到它,我们知道浏览器正在向父应用程序发送消息。

简单但有效(无论如何满足我们的需求)。

编辑

还应该提到,大多数嵌入式浏览器也有操作 DOM 的机制。请记住,您应该能够随意提取信息(HTML 节点)和注入信息。

于 2012-04-10T14:01:44.443 回答