複数のフライアウトページがあるWindowsSideBarガジェットに取り組んでいます。表示するときに、すでにアクティブになっているかどうかを確認したいので、System.Gadget.Flyout.fileの値を確認するだけでいいのではないかと思いました。ただし、このフライアウトが飛び出すボタンコントロールを押すと、ガジェットの背景が消えます。デバッグメッセージで、この行がある場所でスクリプトが停止することがわかりました。
問題の行は次のとおりです。
if (!System.Gadget.Flyout.show && System.Gadget.Flyout.file != "results.html")
{
....
}
ファイルを設定することはできますが、チェックすることはできないので、これはかなり奇妙です。また、MSDNのドキュメントを見ると、ファイルのプロパティはゲッターとセッターの両方であるため、問題はありません。現在アクティブなファイル/ドキュメントを確認するために使用できるソリューションはありますか?
編集-コードの詳細は次のとおりです。
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);
});
}
}