sIFR не работает с прототипом загрузки страницы AJAX

У меня есть сайт с двумя страницами. A и B. Когда вы щелкаете ссылку на странице A, он будет использовать Prototype Ajax.Updater() для загрузки страницы ссылки (страница B) в div на странице (страница A).

Когда страница B загружается на страницу A, замены sIFR не работают, а внутренний текст тега даже не отображается.

Я попытался сделать sIFR.redraw(), когда страница загрузилась в div, но безуспешно.

Когда я просматриваю страницу B в браузере, она работает отлично.

Можно ли вставить HTML в тег DIV на странице с помощью AJAX и правильно отобразить sIFR?


person Community    schedule 16.09.2009    source источник


Ответы (4)


Я предполагаю, что вам, вероятно, потребуется повторно инициализировать sIFR в обратном вызове onComplete Ajax.Updater

person robjmills    schedule 17.09.2009
comment
да. Вам нужно снова выполнить замены. - person Mark Wubben; 19.09.2009

Вот как я закончил это

new Ajax.Updater('content', url, {
  onComplete:function(){
     sIFR.replace(font, {
        selector: '#content h2'
     });
  }
});
person Community    schedule 14.10.2009

Вы можете поместить этот фрагмент в свой html-код:

<script type="text/javascript">
    function pageLoad(sender, args) {
       sIFR.replace(font, { selector: '#content h2' });
    }
</script>

Он будет запускать замену sIFR каждый раз при перезагрузке страницы. Это при обычных обратных передачах PostBack и Ajax. Убедитесь, что вы включили экземпляр ScriptManager на свою страницу.

person mathijsuitmegen    schedule 16.11.2009

mathijsuitmegen: ваше решение отлично работало в приложении, которое я использую, где ScriptManager уже использовался.

На самом деле, эта функция была просто вставлена ​​в мой файл sifr-config.js и работала идеально, что означало, что мой HTML-код не был загроможден.

person Community    schedule 22.12.2009