2013-07-24 3 views
0

У меня проблема с Windows Mobile 6.5 и стандартным IE, который поставляется с ним, и веб-страницу, которую я разработал. В этой сети я имею Lookups, что я управляю с обратным вызовом, например:LookUps и обратные вызовы

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 для Android и работает.

EDIT: Я попытался использовать Opera на одном и том же мобильном устройстве, и он не работает.

Любые идеи?

+0

Сцепление соломинок, но вы можете получить к нему доступ непосредственно на объект 'window'? то есть 'window.callbackFunc'. Я не могу представить, почему это будет работать, но мобильный Windows IE нелепо. – RobH

+0

Да, это отвратительно ... – mRt

+0

И если вы попробуете 'window.prototype.callbackFunc = VendorLookUp_callback;' с 'window.opener.callbackFunc'? – K3N

ответ

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); 
Смежные вопросы