2014-09-09 15 views
7

pisałem stronę, która używane przyciski z onclick do wywołania funkcji jako część zestawu problemów praktycznych i odpowiedzi dla moich studentów. Działa od lipca bez żadnych problemów do piątku, co najmniej 5 września. Dzisiaj przyciski nie działają w ogóle w Chrome i nie mogę się domyślić, dlaczego tak się dzieje. Działają one nadal poprawnie w IE.OnClick nagle nie działa na stronach Google w Chrome

Opublikowałem najprostszy kod, jaki mogę napisać, który nie będzie działał poniżej. Jest okropnie prosty i szczerze myślę, że jest w porządku. Wydaje się działać, jeśli wkleję całą zawartość do pola HTML JSFiddle, ale jeśli spróbuję oddzielić skrypt, nic nie zrobi. Nie wiem, czy to dlatego, że jest zepsuty, czy też dlatego, że go oddzielałem niepoprawnie.

Mam problemy próbuje go debugowania, w dużej mierze dlatego, Witryny Google całkowicie przepisuje swoją pracę w swoim własnym formacie, który jest mniej lub bardziej nieczytelne bez wykonany z silikonu. Kiedy załadować to i spróbuj kliknąć, ja rozumiem wyjątek:

Uncaught Error: shouldn't happen: ES5/3 object passed to makeDOMAccessible 

Ale miałem żadnego szczęścia dowiedzieć się, co się tam dzieje, czy to jest jeszcze naprawdę problem, czy nie.

Wiele czytałem na temat Witryn Google, które są wybredne z JavaScriptem, i nie wiem, czy problem dotyczy Witryn lub Chrome, czy też tych dwóch razem lub co, ale jest to coś, co chciałbym posortować obecnie większość moich uczniów i ja używamy Chrome.

Cały kod poniżej jedzie do włożonej polu HTML, jak napisane, tylko FYI.

Przeprosiny, jeśli okaże się, że są duplikatem; Szukałem dość długo i nie mogłem znaleźć rozwiązania.

<html> 
<body> 
<button onclick="Check()">Push Me</button> 

<script> 
function Check() { 
    alert("It worked"); 
} 
</script> 

</body> 
</html> 

Wszelkie sugestie dotyczące ustalania, co mam (nawet jeśli jest uszkodzony) lub ponawianie to w prosty sposób, który będzie współpracować z witryn i Chrome byłoby mile widziane. Z góry dziękuję.

Here is one full page that was working previously in Chrome and is no longer. Wyświetlał wiersze tabeli po naciśnięciu różnych przycisków.

EDYCJA: Wydaje się działać w starszych wersjach Chrome. Chyba muszę rozwiązać ten problem na forach Chrome.

+0

Nie wiem, czy testuję właściwą metodę, ale otrzymuję wiersze po kliknięciu przycisków (34.0.1847.116/Linux) – FuzzyTree

+0

Tak, to przyciski u dołu połączonej strony będą wyświetlać wiersze po kliknięciu. Używasz również Chrome? To nie działało dla co najmniej dwóch tuzinów ludzi w mojej szkole dzisiaj albo dla mnie na zupełnie oddzielnej maszynie w domu dzisiaj wieczorem. (I spróbowałem używając loginu bez administratora, przez okno Incognito.) –

+1

tak, jestem na chromie. wszystkie przyciski działają dla mnie (dodawanie wierszy początkowych, zmiana, zakończenie) i przyciski pytań sprawdzania również działają – FuzzyTree

Odpowiedz

2

Obejście sugeruje epascarello, używając addEventListener zamiast onclick wydarzeń, wydaje się działać. Nadal nie mogę uzyskać okna alertu w moim przykładzie do pracy z jakiegoś powodu (wbrew zasadom Witryn?), Ale rzeczywista funkcjonalność, którą chciałem, ustawienie innerHTML obiektu akapitu, działa poprawnie.

To wydaje się być problem występujący między Witrynami Google a Chrome v.37. Mam nadzieję, że zostanie rozwiązany w najbliższej przyszłości.

Oto przykład kodu, który działa poprawnie.

<html> 
<body> 

<button id="AnswerButton1">Check Answer 1</button> 

<p id="Answer1"></p> 

<script> 
    document.getElementById("AnswerButton1").addEventListener("click",function(){Answer(1);}); 

    function Answer(n){ 
     document.getElementById("Answer"+n).innerHTML = "Answer to Number 1"; 
    } 

</script> 
</body> 
</html> 

Dziękuję tym, którzy pomogli.

Powiązane problemy