Javascript onClick не работает в Chrome

#javascript #html #google-chrome

#javascript #HTML #google-chrome

Вопрос:

Добрый вечер.

У меня есть следующий код:

 <script type="text/javascript">    
function action1() {
    var x = document.getElementById('MarcaGravadaPedra');
    x.style.display = "inline";
    document.getElementById('EstruturaSagrada').style = "display: none;"
    document.getElementById('objectosagrado').style = "display: none;"
    HideAll();
}
</script>
 

И в самом html есть форма и несколько кнопок внутри нее:

 <input type="button" id="ObjectoSagradoButton" value="Objecto Sagrado" onClick="action1();"/>
 

Хотя этот код работает в Firefox, но не в IE или Chrome. Я перепробовал все, но, похоже, не могу заставить это работать.

Эта кнопка приведет к появлению некоторых разделов, а другие исчезнут.

 <div id="MarcaGravadaPedra">Testing1</div>
 

Комментарии:

1. какие-либо ошибки в журнале консоли?

2. jsfiddle.net/w9jSj работает в Chrome так же, как и в firefox

3. Где остальная часть вашего HTML? Я просто хочу посмотреть, есть ли у вас элементы DOM с идентификатором EstruturaSagrada и objectosagrado .

4. Я изменил весь javascript на jQuery. Нашел это проще и работает в любом браузере.

Ответ №1:

Я не могу представить, чтобы ваш код работал в любом браузере. У вас есть пара таких нечетных строк, переопределяющих style объект строкой:

 document.getElementById(...).style = "display: none;"
 

Должно быть:

 document.getElementById(...).style.display = "none";
 

или:

 document.getElementById(...).setAttribute('style', 'display: none');
 

Ответ №2:

Быстро.

Используйте onclick вместо onClick.

Подробная

Нажмите клавишу F12 в Chrome. Появятся инструменты разработчика. Это действительно полезно для веб-разработчиков.

Теперь перейдите в меню, и вы найдете линзу. Щелкните его, а затем нажмите кнопку. Щелкните правой кнопкой мыши на выделенном тексте и выберите редактировать как HTML. измените onClick на onclick и повторите попытку.

Я не являюсь носителем английского языка, извините за ошибки.

Надеюсь, это будет полезно и приятного вечера программирования.

Комментарии:

1. HTML не чувствителен к регистру.

Ответ №3:

Эта проблема может быть связана с политикой безопасности содержимого. если это так, код не должен работать. кроме того, использование встроенного onclick — плохая идея. попробуйте этот код вместо :

 function action1() {
var x = document.getElementById('MarcaGravadaPedra');
x.style.display = "inline";
document.getElementById('EstruturaSagrada').style = "display: none;"
document.getElementById('objectosagrado').style = "display: none;"
HideAll();
}

document.getElementById('ObjectoSagradoButton').addEventListener('click',action1);
 

более подробную информацию о политике безопасности контента можно найти здесь, в
MDN

Комментарии:

1. Я пробовал это, но, похоже, тоже не работает. Хотя все изменилось с помощью jQuery.