Простая функция загрузки Jquery работает только в FF, но не работает в IE и Safari - PullRequest
0 голосов
/ 24 февраля 2010

Работает нормально только в FF:

    <script type="text/javascript">
    function loadContent(id,start) {
   $("#ContentRightBlockTest").load("cast_member.php?_type="+id+"&start="+start+"");   
}  
    </script>

с нагрузкой на тело

<body onLoad="loadContent('cast',4);">

Ответы [ 4 ]

5 голосов
/ 24 февраля 2010

Как правило, вы не хотите использовать тело onLoad с jQuery. jQuery предоставляет гораздо лучший независимый от браузера способ запуска javascript, когда документ полностью завершает загрузку. Попробуйте это:

    <script type="text/javascript">
    function loadContent(id,start) {
        $("#ContentRightBlockTest").load("cast_member.php?_type="+id+"&start="+start+"");   
   }
   $(loadContent('cast',4));
    </script>

Тогда снимите нагрузку с вашего тела. $ (- что-то здесь--); Синтаксис обеспечит запуск вложенного JavaScript при загрузке документа.

Кроме того, вы можете попробовать:

$(document).ready(function() { loadContent('cast',4); });
1 голос
/ 24 февраля 2010

Избавьтесь от события onload в теле и просто добавьте это на страницу

$(document).ready(function () {
    $("#ContentRightBlockTest").load("cast_member.php?_type="+id+"&start="+start+"")}
)
0 голосов
/ 24 февраля 2010

Я не уверен, что вы подразумеваете под "не работает", поэтому вместо этого я приведу лишь несколько предложений.

Я не уверен насчет Safari, но Internet Explorer будет кэшировать результаты, вызывая сбой в ваших ожиданиях. Вы можете избежать этого, добавляя постоянно изменяющееся значение в строку запроса.

function loadContent(id, start) {
  var t = new Date;
  $.get("cast_member.php", {'_type':id,'start':start,'t':t.getTime()}, function(result) {
    $("#ContentRightBlockTest").html(result);
  });
}

Кроме того, рекомендуется дождаться полной загрузки DOM, прежде чем запускать какие-либо запросы. Таким образом, код jQuery лучше всего помещать в событие ready() из document. Ниже приведено краткое описание этого, содержащее вызов вашей функции.

$(function(){
  // Fire loadContent() once DOM is loaded
  loadContent('cast', 4);
});
0 голосов
/ 24 февраля 2010

Возможно ли, что ваш HTML должен выглядеть так:

<body onload="loadContent('cast',4);">

с атрибутами нижнего регистра?

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