define(function () { if (typeof window == "undefined")return{load: function (n, r, load) { load() }}; var head = document.getElementsByTagName("head")[0]; var engine = window.navigator.userAgent.match(/Trident\/([^ ;]*)|AppleWebKit\/([^ ;]*)|Opera\/([^ ;]*)|rv\:([^ ;]*)(.*?)Gecko\/([^ ;]*)|MSIE\s([^ ;]*)/) || 0; var useImportLoad = false; var useOnload = true; if (engine[1] || engine[7])useImportLoad = parseInt(engine[1]) < 6 || parseInt(engine[7]) <= 9; else if (engine[2])useOnload = false; else if (engine[4])useImportLoad = parseInt(engine[4]) < 18; var cssAPI = {}; cssAPI.pluginBuilder = "./css-builder"; var curStyle; var createStyle = function () { curStyle = document.createElement("style"); head.appendChild(curStyle) }; var importLoad = function (url, callback) { createStyle(); var curSheet = curStyle.styleSheet || curStyle.sheet; if (curSheet && curSheet.addImport) { curSheet.addImport(url); curStyle.onload = callback } else { curStyle.textContent = '@import "' + url + '";'; var loadInterval = setInterval(function () { try { curStyle.sheet.cssRules; clearInterval(loadInterval); callback() } catch (e) { } }, 10) } }; var linkLoad = function (url, callback) { var link = document.createElement("link"); link.type = "text/css"; link.rel = "stylesheet"; if (useOnload)link.onload = function () { link.onload = function () { }; setTimeout(callback, 7) }; else var loadInterval = setInterval(function () { for (var i = 0; i < document.styleSheets.length; i++) { var sheet = document.styleSheets[i]; if (sheet.href == link.href) { clearInterval(loadInterval); return callback() } } }, 10); link.href = url; head.appendChild(link) }; cssAPI.normalize = function (name, normalize) { if (name.substr(name.length - 4, 4) == ".css")name = name.substr(0, name.length - 4); return normalize(name) }; cssAPI.load = function (cssId, req, load, config) { (useImportLoad ? importLoad : linkLoad)(req.toUrl(cssId + ".css"), load) }; return cssAPI });