javascript - 将一个有点复杂的 javascript 函数的值返回给 silverlight 用户控件

标签 javascript jquery silverlight callback deferred

我有一个 silverlight 用户控件,其中有一个文本框和一个按钮。此 silverlight 页面中可以有多个此类用户控件。

单击按钮时,我想启动一个 javascript 函数,该函数调用 jquery 弹出窗口以通过 iframe 打开同一应用程序中的另一个页面。在该页面中,用户进行搜索,数据需要一直传递到 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'); 
}

最佳答案

$(document).on('tap', '.btnSelectWord', function(){
        if( typeof parent.setSearchWord === 'function'){
            parent.setSearchWord(selectedPointId)
        }else if (typeof window.opener.setSearchWord == 'function'){
            window.opener.setSearchWord(selectedPointId);
        }
        else {
            console.log('No function')
            alert('No callback in parent')
        }
    });

关于javascript - 将一个有点复杂的 javascript 函数的值返回给 silverlight 用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15909534/

相关文章:

javascript - 如何防止输入特定格式的小时和分钟值(hh :mm)

javascript - 用于控制应用的神经网络

javascript - 在用 html 填写表单时,如何为无效值制作自定义 css 代码?

Silverlight XAML 错误

silverlight - 我可以解决 IE7/8 中的 Silverlight 显色差异问题吗?

javascript - 拉维尔 | Javascript |在 Blade 中选择特定的 html 表

javascript - 如何获取每个按钮的 innerHTML 并显示在文本框中?

javascript - 使用 remove() 删除元素,但其属性仍然存在

jquery - 我无法隐藏通过 DOM 操作创建的 div

silverlight - 在 Silverlight 中串行处理多个异步 HTTP 请求