Mam żądanie Ajax, które zwraca wyniki wyszukiwania, i dynamicznie tworzę elementy DOM, aby wyświetlić te wyniki. Działa to zgodnie z oczekiwaniami we wszystkich przeglądanych przeze mnie przeglądarkach z wyjątkiem IE8.Elementy dynamiczne nie pojawiają się w IE8, dopóki nie zostanie kliknięte myszką.
Żądanie jest zwracane poprawnie, JavaScript działa poprawnie, a elementy są tworzone, ale elementy nie są wyświetlane na stronie. Pojawiają się one tylko po kliknięciu myszą gdzieś na stronie.
Uruchomiłem szybki test, który uruchomił kod zwrotny bez żądania Ajax, i zachowywał się zgodnie z oczekiwaniami. Zastanawiam się więc, czy ma to coś wspólnego ze sposobem, w jaki IE8 zarządza wątkiem wywołania zwrotnego. Czy ktokolwiek widział takie zachowanie lub miał wgląd w to?
Oddzwanianie jest zasadniczo bardzo proste. Odtworzyłem to:
function catchResults(response) {
var contentBlock = document.getElementById('divResults');
var divResults = document.createElement('div');
var txt = document.createTextNode("Results");
divResults.appendChild(txt);
contentBlock.appendChild(divResults);
}
Używam JQuery.ajax do wykonania połączenia. Widziałem prawidłowe zachowanie w FireFox i Chrome.
Dzięki za pomoc!
wpadłem na to odpowiedź na podobnym problemem - element po prostu nie pokazują. Jeśli zmienię dowolną z jego właściwości w oknie narzędzi programistycznych, pojawi się. Ta technika rozwiązała problem. –
Rosco, jesteś geniuszem. To naprawiło to jak urok. Czy znasz jakąkolwiek dokumentację tego problemu? Czy to jest przeznaczone? Dzięki za pomoc! – TwainJ
Miło to słyszeć =). Nie pamiętam, gdzie ten błąd został udokumentowany. Jestem prawie pewien, że to nie jest zamierzone zachowanie. – Ross