jQuery を使用して XML を取得し、ガジェットのメイン HTML に XML 応答の基本的な詳細 (イベントの日付) を表示する Vista サイドバー ウィジェットを作成しました。ただし、ユーザーがリンクをクリックすると詳細が表示されるように、フライアウト ページを正しく (またはまったく) 動作させるのに非常に苦労しています。
XML 応答をフライアウトに渡すため、アプリ全体で 1 つの .js ファイルを使用しています。$('document').ready() 関数はフライアウトに適用され、フライアウトがまったく表示されないため、使用できません。そこで、次の 2 つの init 関数を作成しました。
メイン アプリの .ready() と同じ義務を処理する mainInit と、フライアウトの .ready() を処理する flyInit。
mainInit を配置するだけで、アプリは正常に動作し、メイン アプリ ドキュメントと認証用のイベント ハンドラーが追加されます。しかし、詳細へのリンクをクリックすると、flyInit 関数の内容に関係なく、フライアウトが表示されません。
Vista サイドバー アプリの基本構造を理解しようとしています。1 つの .js ファイルに登録されたグローバル変数は、ガジェット内のすべての HTML ページで使用できますか? System.Gadget.Flyout.document を操作してフライアウトを処理しようとしましたが、jQuery またはプレーンな古い js を使用して効果がありませんでした。
書籍はガジェットの基盤としてはかなり薄く、MSDN は役に立ちません。他のアプリを分解してチュートリアルに従ってみましたが、うまくいかないようです。
また、ガジェットをテストするために何度も再インストールしたため、Vista が現在の繰り返しの背景画像を使用しているという奇妙な問題があります。ガジェットに関するすべてを settings.ini ファイルから削除しましたが、レジストリに移動して削除する必要がありますか? たぶん、この積み上げられたがらくたが、物事を正しく機能させていないのだと思います。
これは非常に長い質問であり、お詫び申し上げます。これには信じられないほどフラストレーションを感じており、もしそれが有料のギグでなかったら、ホット ロックのようにドロップしていたでしょう。