2015-12-18 2 views
0

Имея небольшую проблему с JQuery, в нашей системе мы загружаем много файлов ajax, мы используем JQuery 2.x, у нас есть требование запуска автономной работы IE 9+, поэтому ajax будет загружаться из файла: ///, и он работал, когда мы были на JQuery 1.xJQuery 2.x использует код ajax из JQuery 1.x

После некоторого рытья я узнал, что JQuery 2.x отказался от поддержки activeX. Это то, что мне нужно, чтобы получить JSON-файлы в IE. Поэтому мой вопрос: есть ли способ иметь JQuery 2.x, а затем сразу после загрузки только кода ajax для JQuery 1.x?

+0

Если вам нужен jQuery 1.x, используйте jQuery 1.x вместо 2.x. jQuery 2.x предназначен для сред, где старая поддержка IE не требуется. Это просто звучит так, будто вы используете неправильную версию jQuery. Вы можете написать код для загрузки другой версии jQuery и назначить ее другому символу, чтобы ее можно было использовать независимо, но зачем загружать две версии jQuery, если вам действительно нужно 1.x? – jfriend00

+0

Не нужно, просто используйте 1.x, потому что 2.x точно соответствует поддержке 1.x sans IE9. – zer00ne

+1

Зачем вам нужен activeX для загрузки из файла: ///, я что-то упускаю? – FrancescoMM

ответ

0

Я решил свою проблему, открыв $ .ajaxTransport, который позволяет вам реализовать свою собственную функциональность ajax. Благодаря этому я смог проверить, поддерживается ли ActiveX и добавить необходимую логику, чтобы все работало.

$.ajaxTransport("* text html xml json", function(options, originalOptions, jqXHR) { 
      if(/* perform check here for scenario your trying to fix*/) { 
       return { 
        send: function(headers, completeCallback) { 
         //create your logic here and have it return 
         completeCallback(status, statusText, responses, headers); 
        }, 
        abort: function() {} 
       }; 
       } 
     }); 
Смежные вопросы