6

我想从 javascript 调用一个 dll 的方法。

我按照这篇文章用 C# 创建 activex 对象

由于 activeX 仅适用于 IE,我应该如何在 FireFox 或 Chrome 中从 javascript 调用这些方法?

我已经有一个使用 ActiveX 对象来调用 Dll 方法的应用程序,但它只在 IE 中工作。

有没有可能使我的应用程序浏览器独立的方法?

更新

我使用 Jquery async AJAX 和 webservice 来调用 dll 方法:

var to_return = $.ajax({
         type: "POST",
         url: "Default.aspx/CallMe", //CallMe is WebService method
         data: "{}", // parameter to pass
         async: false,
         contentType: "application/json; charset=utf-8",
         dataType: "json",
     });

     alert(to_return.responseText);

如果CallMe()返回一个字符串,它会警告它为{"d":"True"}其中 "True" 是从 CallMe 返回的字符串。

我如何才能从中获取仅返回的字符串?

此外,如果Web 服务的CallMe()方法返回该 DLL 中存在的类的对象?如何在 JavaScript 中检索该对象?我可以使用返回的对象调用该类的方法吗?

请帮忙。

4

2 回答 2

3

像这样的东西应该可以工作:

var obj = new ActiveXObject("ABCDll.testMethod");
var vResult = obj.TestMethod();
alert(vResult);

:: 更新 ::

从此链接检查 hazerd 的答案。

于 2012-07-17T06:56:17.460 回答
3

你不能只在浏览器中执行一个 dll 方法(这是出于安全原因)。
为了在浏览器中执行一些编译代码,您必须使用插件

ActiveX 只是在 IE 中实现浏览器插件的一种方法。所有其他浏览器使用不同的插件接口。
然后,如果用户将在浏览器中安装您的插件 - 该插件将在 JS 中可用,您可以使用它在 dll 中执行某些功能。

于 2013-11-23T20:28:04.793 回答