1

는 (나는 X-브라우저 지원의 큰 지지자 해요 그러나 우리의 리드 디바이스는 IE가 충분 말을 나에게 저항한다). 그래서 변환 작업이 얼마나되는지 확인하기 위해 약간의 프로젝트를 진행하고 있습니다.webservice.htc, MOZ - 행동과 파이어 폭스에서 일하는 우리의 응용 프로그램을 얻으려고 하다니 파이어 폭스 3

나는 곧바로 문제를 쳤다.

main.aspx 페이지 I는 믿지 VS에 의해 자동 생성 된 HTC 파일을 통해 동작을 추가 IE 만 방법을 이용하여 웹 서비스에 바인딩.

파이어 폭스가이 기능을 지원하지 않지만 HTC 지원을 활성화하는 데 사용할 수있는 XML 바인딩 파일이 (여기 참조 : 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"); 

내가 웹 서비스, 나는 분명히

var webservice = document.getElementById("webservice") 

시도 (IE에서 잘 작동) 정의되지를 얻을

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

뿐만 아니라 Firebug에서 "useService is not defined"를 제공합니다. 나는 바인딩이 작동하지 않는다고 믿게한다. 그러나 Firebug 콘솔 창에서 Firefox가 webservice.htc를로드하고 있음을 알 수 있습니다.

누구든지이 경험이 있습니까?

웹 서비스 호출 방법을 다시 작성해야합니까?

건배, 롭

답변

2

나는 당신이 진짜 브라우저 간 호환성을 달성하기위한 올바른 방법에 있다고 생각하지 않습니다. Firefox 용 IE 관련 기능에 대한 지원을 추가하려면 이 아니라으로 가야합니다. 오페라, 사파리, 크롬은 어떨까요? 작업중인 응용 프로그램이 인트라넷에 엄격하게 사용하는 경우 다음

IMHO, 코드가 리팩토링해야 ... 파이어 폭스는 충분하지만있을 수 있습니다 지원하지만 다른 방법이있다. ASP.NET 2.0 (이 경우에는 ASP.NET Ajax가 필요합니다) 이상으로 작업하는 경우 Ajax와 SOAP 웹 서비스 사이에서 프록시를 만들 수 있습니다. 이 경우 모든 행동을 JavaScript 코드로 다시 작성해야 할 필요가 있습니다.

참고 : AFAIK VS.NET은 동작을 생성하지 않습니다. 이 :(너무 도움이되지 않습니다 경우

죄송합니다

1

귀하의 jQuery를 조각에 오류가 있습니다 useService 노드 자체에 정의 된 방법이기 때문에,하지 jQuery 오브젝트, 당신이해야 할 것 :

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