JavaScript внутри Ajax - Internet Explorer - PullRequest
1 голос
/ 09 ноября 2009

Я хотел бы добавить Javascript в конце некоторого содержимого Ajax, Он отлично работает на Firefox, но Internet Explorer распечатывает скрипт без его запуска.

<script type="text/javascript">
    $.tablesorter.addParser({
        id: 'title',
        is: function(s)
        {
             return false;
        },
        format: function(s)
        {
             s= s.substring(s.indexOf('<span class="title">')+24,s.length-30);
             return s.replace(' ','');
        },
        type: 'text'
    });

    $.tablesorter.addParser({
        id: 'price',
        is: function(s)
        {
             return false;
        },
        format: function(s)
        {
             s= s.substring(0,s.length-3);
             return s.replace(' ','');
        },
        type: 'digit'
    });
    $(document).ready(function()
    {
       $("#result").tablesorter({
            headers: {
                0: {sorter:'title'},
                1: {sorter:'price'},
                2: {sorter: false}
            }
       });
    });
    </script>



function submitForm()
{
$("form#search").ajaxSubmit({
            beforeSubmit: function(formData, jqForm, options) {
                $("#window").html('<div style="text-align:center; display:block;"><img src="../images/commun/spinner.gif" /></div>');
                return true;
            },
            success: function(msg, statut) {
                $("#window").html(msg);
                return false;
            }
            });
}

Ответы [ 3 ]

2 голосов
/ 09 ноября 2009

Вы должны использовать getScript для загрузки и запуска скриптов. Вы не можете смешивать скрипт с HTML-контентом. Также убедитесь, что для типа контекста ответа сервера задано значение MIME типа javascript, например text / javascript.

2 голосов
/ 09 ноября 2009

У меня была такая же проблема, я просто поместил содержимое скрипта в div с особым именем класса. Получив ответ и введя его в DOM, я извлекаю содержимое сценария и просто выполняю eval (). Это работает во всех браузерах: -)

0 голосов
/ 20 ноября 2011

Причиной ошибки 80020101 является то, что IE не может загружать / запускать сценарии, возвращенные с AJAX в JQuery 1.6, если сценарий заключен в комментарий к cdata. Итак, удалите CDATA (<- ... ->) в коде, и он должен работать.

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