gpt4 book ai didi

javascript - webservice.htc、moz-behaviors 和 Firefox 3

转载 作者:行者123 更新时间:2023-11-30 13:44:08 28 4
gpt4 key购买 nike

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

我马上遇到了一个问题。

main.aspx 页面使用 IE 唯一方法绑定(bind)到 Web 服务,通过 htc 文件添加行为,我相信这是由 VS 自动生成的。

Firefox 不支持此功能,但有一个 xml 绑定(bind)文件可用于启用 htc 支持(参见此处:http://dean.edwards.name/moz-behaviors/overview/)。这些示例在 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");

我得到 webservice is not defined(在 IE 中工作正常),我显然试过了

var webservice = document.getElementById("webservice") 

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

还有,这只是在 Firebug 中给我“未定义 useService”。这让我相信绑定(bind)不起作用。但是,我可以在 Firebug 控制台窗口中看到 Firefox 正在加载 webservice.htc。

有没有人有这方面的经验?

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

干杯,罗布

最佳答案

我不认为您在实现真正的跨浏览器兼容性方面走在正确的道路上。为 Firefox 添加对 IE 特定功能的支持绝对不是可行的方法。 Opera、Safari、Chrome……怎么样?如果您正在使用的应用程序仅在 Intranet 上使用,那么支持 Firefox 可能就足够了......

恕我直言,应该重构代码,但要以其他方式重构。如果您正在使用 ASP.NET 2.0(在这种情况下您需要 ASP.NET Ajax)或更新版本,您可以在 Ajax 和 SOAP Web 服务之间创建代理。在那种情况下,您需要将所有行为重写为 JavaScript 代码,这可能不是一件容易的事。

旁注:AFAIK VS.NET 不会生成行为。

抱歉,如果这不是很有帮助:(

关于javascript - webservice.htc、moz-behaviors 和 Firefox 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/253360/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com