Piszę aplikacje z elementami JS i JQuery i wszystkie skrypty działają pod IE, FF, natomiast w Google Chrome w inspectorze sypia się czerwone błędy.
W ogóle Google Chrome to obecnie najbardziej kłopotliwa przegladarka.
Czy sa jakies sposoby na pisanie skryptów JS szczególnie pod Google Chrome?
Wklej te błędy tutaj.
Jest jakiś problem z Jquery pod Google Chrome. Mam skrypt, który komunikuje sie asynchronicznie. W odpowiedzi otrzymuje dane w formacie XML. FF przetwarza te dane bez błędów, a w Google Chrome wyskakuje błąd.
W przypadku sukcesu, to znaczy po pozytywnym responsie z serwera funkcja $().ajax realizuje funkcje w ktorej dane, które przyszły z serwera przetwarzane sa w tej linii kodu:
var vals = xml.activeElement.firstElementChild.attributes;
W FF wszystkie dane z drzewa xml zapisuja sie do zmiennej vals, a nastepnie skrypt je przetwarza i wyswietla przetworzone w popup-ie.
W Google Chrome ta linia kodu zwaraca błąd,a w IE Unspecified error.
Xml to dokument w formacje xml.
Pewnie wywołujesz $.ajax
synchronicznie zamiast asynchronicznie lub coś takiego - wrzuć kod źródłowy.
Ajax działa asynchronicznie. W IE w podgladze dokumentu xml mam <permission denied="denied"> dla activeElement.
W Google Chrom pomimo zainstalowanej wtyczki CORS znowu wywala mi błąd, że nie mam ustawionego ....
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'moja www na publicznym serwerze' is therefore not allowed access.
Czy mozna na serwerze (hostingu) zmienic ustawienia tak, żeby było możliwe CORS. ?
Problem rozwiazany!!. Cors wymaga ustawienia w przegladarkach, ale problem dotyczył czegos innego.
W asynchronicznej odpowiedzi z ajax dostaje dokument xml. Kiedy chce sie dostac do któregos węzła w dokumencie xml, kod podany powyżej zadziała tylko w FF.
Do IE i Google Chrome trzeba użyć:
var atrybut = xml.getElementsByTagName("FIELDS")[0].getAttribute('nazwa atrybutu');
i taki kod jest poprawnie interpretowany przez IE i Google Chrome