Как работает $ (document) .ready () в IE 8? - PullRequest
9 голосов
/ 14 апреля 2009

Я недавно установил IE 8 и, похоже, не могу получить событие jquery $ (document) .ready. Есть ли какие-то особые соображения, которые я пропускаю? В целом, это все, что у меня есть в моем html, и оно работает как положено в Chrome и Firefox:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Page full of awesomeness</title>
    <script type="text/javascript" src="~/Scripts/jquery-1.3.2.js" />
    <script type="text/javascript">        
        $(document).ready(function() {
            alert("Hello?");           
        });
    </script>
</head>

<body>

</body>

В Internet Explorer страница просто загружается без происшествий. Окно предупреждения отсутствует, и я не вижу сообщений об ошибках JavaScript. Это что-то нормальное, о чем я просто не знаю?

Ответы [ 6 ]

32 голосов
/ 14 апреля 2009

Попробуйте повернуть это.

<script type="text/javascript" src="~/Scripts/jquery-1.3.2.js" />

В это

<script type="text/javascript" src="~/Scripts/jquery-1.3.2.js"></script>
1 голос
/ 14 апреля 2009

С действующими строгими стандартами XHTML:

Даже если указано src, тег сценария не является пустым тегом и не может быть записан <script src=".... />. Если вы включите src, вы не должны включать какой-либо сценарий между открывающим и закрывающим тегами, поскольку обработка браузером любого сценария между тегами не является надежной.

Как правило, не закрывайте тег самостоятельно. Используйте </script>.

0 голосов
/ 24 мая 2019
$(document).ready()

Не работает в IE8 Я нашел пример кода по этой ссылке https://plainjs.com/javascript/events/running-code-when-the-document-is-ready-15/ Работает с Jquery 1.10.2

	function run() {
    // do something
    alert('working');
}

// in case the document is already rendered
if (document.readyState!='loading') run();
// modern browsers
else if (document.addEventListener) document.addEventListener('DOMContentLoaded', run);
// IE <= 8
else document.attachEvent('onreadystatechange', function(){
    if (document.readyState=='complete') run();
});
0 голосов
/ 28 апреля 2015

Также проверьте совместимость jQuery. В настоящее время jQuery 2.x поддерживает только IE9 или новее. Не IE8

0 голосов
/ 14 апреля 2009

В дополнение к тому, что сказали другие, вам также не хватает </html> в конце документа. Может быть, просто ошибка копирования / вставки:)

0 голосов
/ 14 апреля 2009

Я думаю, что это так (извините, у меня нет ie8 на этой машине для тестирования)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Page full of awesomeness</title>
    <script type="text/javascript" src="~/Scripts/jquery-1.3.2.js"></script>
    <script type="text/javascript">        
        $(document).ready(function() {
            alert("Hello?");           
        });
    </script>
</head>

<body>

</body>

Также я бы предложил использовать /Scripts/jquery-1.3.2.js, если вы ссылаетесь на корень вашего сайта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...