diff --git a/lib/processCss.js b/lib/processCss.js index 8979f7ad..757425f3 100644 --- a/lib/processCss.js +++ b/lib/processCss.js @@ -97,6 +97,20 @@ var parserPlugin = postcss.plugin("css-loader-parser", function(options) { item.nodes.forEach(processNode); break; case "item": + if (item.name.indexOf('progid:DXImageTransform.Microsoft.AlphaImageLoader') >= 0){ + delete item.innerSpacingBefore; + delete item.innerSpacingAfter; + var matchSrc = item.name.match(/src=['"]([^'"]+)['"]/); + if (!matchSrc) break; + var srcUrl = matchSrc[1]; + if (options.url && !/^#/.test(srcUrl) && (isAlias(srcUrl) || loaderUtils.isUrlRequest(srcUrl, options.root))) { + item.name = item.name.replace(srcUrl, "___CSS_LOADER_URL___" + urlItems.length + "___"); + urlItems.push({ + url: srcUrl + }); + } + break; + } var importIndex = imports["$" + item.name]; if (typeof importIndex === "number") { item.name = "___CSS_LOADER_IMPORT___" + importIndex + "___"; diff --git a/test/urlTest.js b/test/urlTest.js index bfe5c4ee..d202beca 100644 --- a/test/urlTest.js +++ b/test/urlTest.js @@ -189,4 +189,12 @@ describe("url", function() { test("external schema-less url", ".class { background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz }", [ [1, ".class { background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz }", ""] ], "?-url"); + test("filter ie AlphaImageLoader ", + ".highlight { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"http://example.com/image.jpg\", sizingMethod='scale'); }", [ + [1, ".highlight { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"http://example.com/image.jpg\", sizingMethod='scale'); }", ""] + ], "?-url"); + test("filter ie AlphaImageLoader relativePath", + ".highlight { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"./image.png\", sizingMethod='scale'); }", [ + [1, ".highlight { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"./image.png\", sizingMethod='scale'); }", ""] + ], "?-url"); });