从Javascript调用DLL方法

6
我希望能从JavaScript中调用dll的方法。
我跟随这篇文章Creating activex objects with c#创建了ActiveX对象。
由于ActiveX仅在IE中运作,如何才能在FireFox或Chrome中通过JavaScript调用这些方法?
我已经有一个应用程序,它使用ActiveX对象来调用Dll方法,但仅在IE中起作用。
是否存在任何可能使我的应用程序独立于浏览器的方法? 更新: 我使用Jquery异步AJAX和Web服务来调用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"}是从 CallMe() 返回的字符串中的"True"。如何只获取返回的字符串?此外,如果webservice的 CallMe() 方法返回该DLL中存在的类的对象,我该如何在JavaScript中检索该对象?我能够使用返回的对象调用该类的方法吗?请帮忙。

重复吗?https://dev59.com/TWDVa4cB1Zd3GeqPg9Kr?rq=1 - rene
2个回答

3
你不能在浏览器中执行dll方法(这是出于安全原因)。为了在浏览器中执行一些编译代码,你需要使用一个 插件
ActiveX 只是在 IE 中实现浏览器插件的一种方法。所有其他浏览器都使用不同的插件接口。如果用户在浏览器中安装了你的插件,那么该插件将可从 JS 中访问,并且你可以使用它来执行 dll 中的某些函数。

谢谢VitaliyG。目前我正在使用这个插件选项。 - Prasad Jadhav

3
这样的代码应该可以运行:
var obj = new ActiveXObject("ABCDll.testMethod");
var vResult = obj.TestMethod();
alert(vResult);

:: 更新 ::

请查看这个链接中hazerd给出的答案。


亲爱的@Nirmal,这个适用于Chrome吗? 我认为ActiveXObject只允许在IE中使用。 - Hosein Aqajani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接