저는 여러 개의 플라이 아웃 페이지가있는 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);
});
}
}
불행히도, 여전히 문제가 있습니다. System.Gadget.Flyout.file! = "results.html"에 대한 검사를 실행하자마자 가젯이 해당 코드 섹션을 실행하면 오류가 발생합니다. 그 동안 나는 결과 플라이 아웃을 열 때 수동으로 설정 한 자체 변수 인 flyoutResultsAreVisible을 추가했습니다. 자세한 내용은 편집 된 게시물을 참조하십시오. –
죄송합니다. 내 잘못입니다. System.Gadget.Flyout.file은 ** write-only **라는 것을 잊어 버렸습니다. 즉, get이없고 값을 읽으려고하면 오류가 발생합니다. 문서에서는 실제로 속성을 읽기/쓰기 (get 및 set)로 지정합니다. MS의 입장에서 큰 소리로 들린다. 해결 방법에 대한 내 업데이트 된 답변보기 및 System.Gadget.Flyout.file 내 의견에 업데이트 할 것이다 MS 워드 프로세서 :) –