2009-06-17 6 views
2

Windows 데스크톱 응용 프로그램의 웹 페이지 용 JavaScript 컨트롤을 사용해야하는 불행한 상황입니다. 이를 위해 우리는 응용 프로그램 내부에 Internet Explorer를 호스팅하고 로컬 웹 페이지로 이동하도록 지시합니다. 그런 다음 스크립트 엔진의 IDispatch 인터페이스를 가져 와서 컨트롤과 상호 작용하는 데 사용합니다. 웹 페이지에 다음과 같은 :자바 스크립트가 호스팅 된 웹 브라우저에로드되지 않습니다.

<html> 
    <head> 
    <script src="third party website url" type="text/javascript"></script> 
    </head> 
    <body onload="OurApp.OnLoad()"> 
    </body> 
</html> 

(I 몇 가지 태그를 생략하고 명확성을 위해 속성했습니다.) 우리는 스크립트 엔진의 네임 스페이스에 "OurApp"개체를 추가합니다. 스크립트가 응용 프로그램으로 다시 호출 할 수있게 해주는 IDispatch 인터페이스입니다. 응용 프로그램의 OnLoad() 메서드에서 컨트롤에 의해 정의 된 다양한 JavaScript 객체를 만듭니다.

문제점 : 99 %의 경우에이 설정이 유용합니다. 아쉽게도 일부 고객 시스템에서는 OnLoad() 메소드가 스크립트 엔진에서 예상되는 메소드를 찾을 수 없습니다. 제 3 자 웹 사이트의 자바 스크립트가로드되지 않았거나 실행이 허용되지 않은 것과 같습니다. 많은 고객에게 Internet Explorer의 보안 설정을 변경하여이 문제를 해결했습니다. 하지만 이제 보안 설정이 올바른 것으로 보이는 고객이 생겼지 만 여전히 문제가 발생합니다.

위와 같이 웹 페이지를 만들고 고객이 자신의 컴퓨터에서 열게하면 주저없이 활성화 된 컨텐츠를 승인하라는 팝업창이 나타나고 동의하면 모든 것이 올바르게 작동합니다. (이 페이지에서는 OurApp.OnLoad() 호출을 같은 JavaScript 함수로 대체했습니다.) 이것은 내 컴퓨터에서 얻은 동작과 동일하지만 여기서는 응용 프로그램이 제대로 작동합니다. 고객의 기기에서 오류 메시지가 전혀 표시되지 않습니다 (올바른 장소를보고 있지는 않지만).

그래서 나는 혼란 스럽습니다. 어떤 생각이나 제안이라도 대단히 감사하겠습니다.

업데이트 마침내 문제를 해결할 수있었습니다. 문제는 지원되지 않는 로케일을 제 3 자 웹 사이트에 전달하는 것이 었습니다. 이 경우, 그들은 가까운 성냥이나 합당한 디폴트가 아닌 빈 스크립트로 반환하고있었습니다.

답변

2

당신은 당신의 자신의 보안 관리자를 구현 할 수 있습니다 :

http://msdn.microsoft.com/en-us/library/ms537182(VS.85).aspx

+0

이것은 실제로 매우 유망 해 보입니다. 어떻게되는지 알려 드리겠습니다. –

+0

자, 컨트롤 사이트에 ISecurityManager 인터페이스를 구현했지만 여전히 기쁨은 없습니다. 이렇게하면 Internet Explorer 보안 설정이 너무 엄격하여 우리에게 유용 할 수있는 문제가 해결됩니다. 그것은 분명히 지원 요청을 제거 할 것이므로, 이것에 대해 감사드립니다. 불행히도, 우리의 이상한 고객은 여전히 ​​문제가 있습니다. 나는 같은 증상이지만 다른 원인이되어야한다고 생각합니다.어쨌든, 나는 계속 지킬거야. 다시 한번 감사드립니다. –

+0

이 문제는 간단한 현지화 문제로 판명되었지만, 이것은 실제로 유용한 대답이므로 받아 들일 수있는 것으로 표시하겠습니다. –

2

문제가 무엇인지 100 % 확신 할 수는 없지만, IT 부서가 특정 보안 정책, 프록시, 자연의 것들을 사용하여 컴퓨터를 잠그고있는 고객과 관련이 있다고 추측한다면 . 이 문제를 겪고있는 고객 IT 부서와 함께이 문제를 논의 했습니까?

다른 포트에서 원격 페이지에 연결하고 있습니까? 예 : 호스팅 된 IE 컨트롤에서 80입니까? 나는 IE COM을 많이 알지는 못하나 에러, 경고, 그 자연을 프로그램 적으로 얻을 수 있습니까?

+0

네,하지만 그들은 도움이되지 않았습니다. 내가 특히 이상한 점은 Internet Explorer가 로컬 페이지를 잘 표시 할 수 있지만 호스트 된 Internet Explorer 컨트롤은 자신의 컴퓨터에서만 볼 수 없다는 것입니다. –

관련 문제