Javascript webservice.htc、moz行为和Firefox 3

Javascript webservice.htc、moz行为和Firefox 3,javascript,web-services,firefox,cross-browser,html-components,Javascript,Web Services,Firefox,Cross Browser,Html Components,在尝试让我们的应用程序在Firefox上运行时(我是X浏览器支持的大力支持者,但我们的首席开发人员反对我说IE已经足够好了)。所以我正在做一个小的辅助项目,看看转换需要做多少工作 我马上就遇到了一个问题 main.aspx页面通过VS I beleive自动生成的htc文件,使用IE特有的添加行为的方法绑定到Web服务 Firefox不支持这一点,但有一个xml绑定文件可用于启用htc支持(请参见此处:)。这些示例适用于FF3,但当我像平时一样使用我的webservice.htc时,例如: /

在尝试让我们的应用程序在Firefox上运行时(我是X浏览器支持的大力支持者,但我们的首席开发人员反对我说IE已经足够好了)。所以我正在做一个小的辅助项目,看看转换需要做多少工作

我马上就遇到了一个问题

main.aspx页面通过VS I beleive自动生成的htc文件,使用IE特有的添加行为的方法绑定到Web服务

Firefox不支持这一点,但有一个xml绑定文件可用于启用htc支持(请参见此处:)。这些示例适用于FF3,但当我像平时一样使用我的webservice.htc时,例如:

//Main.aspx
/*SNIP*/
<style type="text/css" media="all">
    #webservice
    {
        behavior:url(webservice.htc);
        -moz-binding:url(bindings.xml#webservice.htc);
    }
</style>
</head>
<body>
<div id="webservice"></div> <!-- we use this div to load the webservice stuff -->
/*SNIP*/

//Main.js
webservice.useService(url + asmpath + "/WebServiceWrapper.asmx?WSDL","WebServiceWrapper");

这也让我在Firebug中看到了“useService未定义”。这让我觉得绑定不起作用。但是我可以看到Firefox正在Firebug控制台窗口中加载webservice.htc

有人有这方面的经验吗

我是否必须重写Web服务的调用方式

干杯,
Rob

我认为您在实现真正的跨浏览器兼容性方面走的路并不正确。为Firefox添加对IE特定功能的支持肯定是不可取的。歌剧、狩猎、铬合金……怎么样。。。?如果你正在使用的应用程序是在内联网上严格使用的,那么支持Firefox就足够了

依我看,代码应该被重构,但是用另一种方式。如果您使用的是ASP.NET 2.0(在本例中,您需要ASP.NET Ajax)或更高版本,则可以在Ajax和SOAP web服务之间创建代理。在这种情况下,您需要将您的所有行为重写为JavaScript代码,这可能不是一个小壮举

另一方面:AFAIK VS.NET不会生成行为


如果这没有太大帮助,很抱歉:(

您的jQuery代码段有一个错误:因为
useService
是在节点本身而不是jQuery对象上定义的方法,您必须执行以下操作:

$("#webservice")[0].useService(url + asmpath +
  "/WebServiceWrapper.asmx?WSDL","WebServiceWrapper");
$("#webservice").useService(url + asmpath + "/WebServiceWrapper.asmx?WSDL","WebServiceWrapper");
$("#webservice")[0].useService(url + asmpath +
  "/WebServiceWrapper.asmx?WSDL","WebServiceWrapper");