0

我在使用 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,但它不起作用。

有任何想法吗?

4

1 回答 1

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);
于 2013-08-11T22:09:31.660 回答