LookUps和回调

时间:2013-07-24 20:26:23

标签: javascript windows mobile callback

我遇到了Windows Mobile 6.5及其附带的标准IE以及我开发的网页的问题。 在这个网络中,我有查询,我通过回调进行管理,如下所示:

window.callbackFunc = VendorLookUp_callback;
window.open('LookUpVendor.aspx?query=' + encodeURIComponent(query));

因此,我为查找定义了一个回调函数并打开它。然后,在查找代码中:

window.parent.opener.callbackFunc(document.getElementById('invItmSelected').value);
window.close();

这在Windows Mobile环境中不起作用,查找打开但是,回调函数不起作用,因为:

window.parent.opener = undefined

所以,我无法进入回调函数。我试着用:

window.parent.opener
window.top.opener
window.opener
window.parent
window.top

但是,我仍然无法让它发挥作用。

此网站适用于IE9,IE10,Firefox和Chrome的桌面版本。我还在Firefox和Dolphin for Android上对此进行了测试,并且可以使用。

编辑:我尝试在同一部手机上使用Opera,但它不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

解决方法是保持对新查找窗口的引用。观察查找窗口以查看其是否正确加载,然后执行您的回叫

var lookupwin = window.open('LookUpVendor.aspx?query=' + encodeURIComponent(query));
lookupInt = window.setInterval(function(){
  //check if your lookup window is loaded
  if(lookupwin.document.getElementById("#some_element_to_check")){ //look for an element or something
    //if things look good execute your callback
    VendorLookUp_callback();
    window.clearInterval(lookupInt);
  }
}, 0);