テキスト ボックスとボタンがある Silverlight ユーザー コントロールがあります。この Silverlight ページ内には、これらのユーザー コントロールが複数存在する可能性があります。
ボタンをクリックすると、jquery popup を呼び出して iframe 経由で同じアプリケーション内の別のページを開く JavaScript 関数を起動したいと考えています。そのページでは、ユーザーが検索を行い、データを Silverlight ユーザー コントロールに渡す必要があり、テキスト ボックスにデータを入力する必要があります。
Silverlight 内で HtmlPage Invoke メソッドを使用すると、javascript 関数を呼び出すことができます。この JavaScript 内で、jquery モバイル ポップアップも呼び出すことができます。ただし、その関数から検索ワードを返すことはできません。以下の関数は、空の文字列をすぐに返します。setTimeout と defer メソッドを使用しましたが、まだ成功していません。ポップアップ ウィンドウで、ユーザーが単語の検索を終了してウィンドウを閉じると、そのポップアップ関数は setSearchWord() という親関数を呼び出します。この関数は、searchWord 変数を設定するこのページにあります。
var searchWord = '';
function calljquerymobilePopUp(){
$("$popupWin").popup('open');
//what should I do here such that I can make sure 'searchWord'
//variable is not empty and return it to silverlight user control.
return searchWord;
}
function setSearchWord(val){
searchWord = val;
// I always get this value but its always too late.
// In silverlight user control, I end up getting empty string
console.log(searchWord);
$("$popupWin").popup('close');
}