2009-09-09 3 views
1

저는 여러 개의 플라이 아웃 페이지가있는 Windows SideBar 가젯에서 작업 해 왔습니다. 하나를 표시하려고 할 때 이미 활성화되어 있는지 확인하고 싶기 때문에 System.Gadget.Flyout.file의 값을 확인할 수 있다고 생각했습니다. 그러나이 플라이 아웃이 튀어 나오는 버튼 컨트롤을 누르면 가젯의 배경이 사라집니다. 내 디버그 메시지에서이 줄이있는 곳에서 스크립트가 멈추는 것을 발견했습니다. 내가 파일을 설정하지만, 그것을 확인하지 수System.Gadget.Flyout.file의 값 확인

if (!System.Gadget.Flyout.show && System.Gadget.Flyout.file != "results.html") 
{ 
    .... 
} 

이것은 매우 이상한 : 여기

문제의 라인입니다. 그리고 MSDN 문서를 보면 file 속성은 getter와 setter이므로 아무런 문제가 없어야합니다. 누구나 현재 어떤 파일/문서가 활성화되어 있는지 확인할 수있는 해결책이 있습니까? -

편집 다음은 코드에 대한 상세한 설명입니다 :

function ShowResults(event) 
{  
    var searchString = $.trim($("#searchInput").val()); 

    if (!System.Gadget.Flyout.show || !gFlyoutResultsAreVisible) 
    { 
     // Load up the results page into the flyout 
     System.Gadget.Flyout.file = "results.html"; 
     System.Gadget.Flyout.show = true; 

     System.Gadget.Flyout.document.parentWindow.attachEvent("onload", function() 
     { 
     System.Gadget.Flyout.document.parentWindow.PerformSearch(searchString); 
     }); 
    } 
} 

답변

0

그것은 코드의 조각 문제를 일으키는 가능성이다. 그럼에도 불구하고, 당신은 뭔가를 시도 할 수 다음

if (System.Gadget.Flyout.document && System.Gadget.Flyout.file != "results.html") 
{ 
    .... 
} 

그래서 더 나은 이해를 얻을 수있는 무엇을거야 조금 더 코드를 게시하시기 바랍니다, 즉 도움이되지 않습니다 당신이 아직 스스로를 제압하지 않은 경우 에.

업데이트]

아 내가 지금 참조하십시오. 죄송합니다. 본인의 원래 답변을 추가 할 때이 테스트를 더 실시 했어야합니다. 나는 System.Gadget.Flyout.file이 읽기/쓰기 속성이라고 가정했지만 물론 너무 많은 의미를 가질뿐입니다. System.Gadget.Flyout의 file 속성은 실제로 쓰기 전용입니다.

해결 방법으로, 내가 사용하는 것이 다음

var FlyDoc = System.Gadget.Flyout.document; 
if (FlyDoc && FlyDoc.location == "x-gadget:///results.html") 
{ 
    ... 
} 

너무 완전히 잊고 용서해주십시오, 내가 전에 위의 코드를 작성했습니다로서 내가 2006 년에이 버그로 실행 가능성이 높습니다 이 문제와 내가 원래이 질문에 대답하려고 할 때 올바른 해결책을 게시하지 않음 :)

+0

불행히도, 여전히 문제가 있습니다. System.Gadget.Flyout.file! = "results.html"에 대한 검사를 실행하자마자 가젯이 해당 코드 섹션을 실행하면 오류가 발생합니다. 그 동안 나는 결과 플라이 아웃을 열 때 수동으로 설정 한 자체 변수 인 flyoutResultsAreVisible을 추가했습니다. 자세한 내용은 편집 된 게시물을 참조하십시오. –

+0

죄송합니다. 내 잘못입니다. System.Gadget.Flyout.file은 ** write-only **라는 것을 잊어 버렸습니다. 즉, get이없고 값을 읽으려고하면 오류가 발생합니다. 문서에서는 실제로 속성을 읽기/쓰기 (get 및 set)로 지정합니다. MS의 입장에서 큰 소리로 들린다. 해결 방법에 대한 내 업데이트 된 답변보기 및 System.Gadget.Flyout.file 내 의견에 업데이트 할 것이다 MS 워드 프로세서 :) –