Использование 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
});
Другие вопросы по тегам