inlineresources
Version:
Inlines style sheets, images, fonts and scripts in HTML documents. Works in the browser.
60 lines (53 loc) • 2.18 kB
HTML
<html>
<head>
<title>Helper page for bundlePage.js</title>
<script type="text/javascript" src="../node_modules/xmlserializer/xmlserializer.js"></script>
<script type="text/javascript" src="../build/dependencies/url.js"></script>
<script type="text/javascript" src="../node_modules/css-font-face-src/dist/css-font-face-src.js"></script>
<script type="text/javascript" src="../dist/inlineresources.js"></script>
<script>
var loadDocument = function (url) {
return new Promise(function (resolve, reject) {
var ajaxRequest = new window.XMLHttpRequest(),
doReject = function () {
reject({message: "Unable to load page"});
};
ajaxRequest.addEventListener("load", function () {
if (ajaxRequest.status === 200 || ajaxRequest.status === 0) {
resolve(ajaxRequest.responseXML);
} else {
doReject();
}
}, false);
ajaxRequest.addEventListener("error", function () {
doReject();
}, false);
try {
ajaxRequest.open('GET', url, true);
ajaxRequest.responseType = "document";
ajaxRequest.send(null);
} catch (err) {
doReject();
}
});
};
window.bundlePage = function (url) {
return loadDocument(url).then(function (doc) {
return inlineresources.inlineReferences(doc, {}).then(function (errors) {
errors.forEach(function (error) {
console.log(error.msg);
});
return xmlserializer.serializeToString(doc);
});
});
};
</script>
</head>
<body>
<h1>Helper page for bundlePage.js</h1>
<p>Example usage:</p>
<pre>node ./examples/bundlePage.js test/fixtures/image.html</pre>
<p>Make sure you have run `npm test` beforehand</p>
</body>
</html>