Использование Selectivizr с RequireJS (jQuery)
Кто-нибудь имеет опыт работы с Selectivizr для работы с IE7/8 и RequireJS?
Я попытался добавить условные комментарии, как обычно, у меня раньше это не работало, я работаю с локального хоста.
Я думаю, что это как-то связано с jQuery, который должен быть запущен до Selectivizr, что усложняет RequireJS.
Любая помощь будет отличной, ура.
2 ответа
По какой-то причине метод yepnope не работал, он по-прежнему загружал selectivizr в качестве первого скрипта, даже до modernizr, это должно быть как-то связано с асинхронным способом работы yepnope.
В моем случае я решил это, добавив условный комментарий перед моим HTML-тегом.
<!--[if (gte IE 6)&(lte IE 8)]><html class="lt-ie9"><![endif]-->
Затем я получил отдельный "ie-tidy.js", из которого я звоню, требуя js. Так что мой конфиг выглядит примерно так (обрезано)
requirejs.config({
paths: {
jquery: "../jquery-1.7.2.min",
app: ".",
selectivizr: '../selectivizr-min'
},
"shim": {
"cookie": ["jquery"],
"selectivizr": ["jquery"]
}
});
requirejs(['jquery', 'app/header', 'app/ie-tidy'], function ($) {
});
Затем внутри моего ie-tidy.js я делаю следующее (среди прочих специфичных для ie скриптов)
define(['jquery'], function ($) {
"use strict"
$(function() {
if ($('html.lt-ie9').size()) {
require(['jquery', 'selectivizr']);
}
});
});
Это работает именно так, как я хотел бы, загружая selectivizr после jQuery и применяя классы selectivizr, как и ожидалось. Спасибо за вашу помощь @Dzulqarnain
Согласно веб-сайту Selectivizr, вам необходимо указать одну из библиотек, определенных в таблице, расположенной на первой странице.
Вы всегда можете загрузить Selectivizr, используя YepNope или что-то подобное после определения jQuery.
Например.
require.config({
shim: {
'yepnope' : {
exports: 'yepnope'
}
},
paths: {
'jquery' : 'jquery-min',
'yepnope' : 'yepnope-min'
}
});
require(['jquery', 'yepnope'], function($){
yepnope({
load: ['iegt5!ielt9!selectivizr-min.js']
});
// do other stuff
});