我遇到了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,但它不起作用。
有什么想法吗?
答案 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);