<button> не работает в IE8

У меня есть несколько кнопок на моем веб-сайте, используя тег кнопки, и при рендеринге в IE8 они не доступны для кликов (щелчок на них не отправляет пользователя на новый URL-адрес). Существуют ли какие-либо решения для исправления этого для IE? Это потому, что я обертываю кнопку в теге? Это потому, что я использую имя класса "button"?

Код:

<a href="product_home.html">
<button class="button green big_button">Learn more</button>
</a> 

Ответ 1

Ваша разметка неверна, IE здесь не виноват. Button - это элемент формы, который означает, что для него требуется форма вокруг точки, где должен быть отправлен пользователь, - обернуть кнопку в тег ссылки недостаточно или не совсем правильно, на самом деле я не думаю, что она должна работать где угодно, а не даже в других браузерах.

Чтобы узнать больше о правильном использовании <button/>, посетите Справка XHTML: кнопка

Ответ 2

Вы всегда можете использовать Javascript, который работает с перекрестным браузером -

<button onclick="location.href='http://www.google.com'">This is a button to google</button>

Ответ 3

Вы можете попробовать:

<a href="product_home.html" class="button green big_button">Learn more</a> 

или поместив кнопку в форму

Ответ 4

Cross Browser - работает в MSIE 8 и FF 24 +

<button onclick="location.href='myscript.php?id=$ID'" type="button">MyLink</button>.

Ответ 5

Смотрите мой другой ответ; Я думаю, что это современный подход на основе jQuery для исправления этой проблемы для старых IE, без искажения вашей красивой чистой разметки.

<!--[if lt IE 9]>

<script type="text/javascript">
// IE8 is the new IE6. Patch up https://stackoverflow.com/questions/2949910/how-to-make-href-will-work-on-button-in-ie8
$('button').click(function(){
    document.location = $(this).parents('a').first().prop('href');
});
</script>

<![endif]-->

Ответ 6

Использование образца:

<form id="myform" name="myform" action="product_home.html">
  <input id="user" name="user" type="text" value="" />
  <button class="button green big_button" type="submit">Learn more</button>
  <button class="button green big_button" type="reset"><b>reset the form!</b></button>
</form>

<script type="text/javascript">

var myform = document.getElementById('myform');

myform.onsubmit = function()
{
    alert(myform.user.value); 
if (myform.user.value != '') return true;
    return false;
}

</script>

Ответ 7

<a href="product_home.html">
<div class="button green big_button">Learn more</div>
</a>