1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
<!DOCTYPE html>
<html>
<head>
<script>
let fontLoadResult;
let fontWorkerSource = new Blob([`
self.onmessage = function(e) {
const { fontFamily, fontUrl, options } = e.data;
async function loadFont(fontFamily, fontUrl, options = {}) {
try {
const fontFace = new FontFace(fontFamily, fontUrl, options);
const loadedFont = await fontFace.load();
fonts.add(loadedFont);
return { success: true, fontFamily };
} catch (error) {
return { success: false, fontFamily, error: error.message };
}
}
loadFont(fontFamily, fontUrl, options)
.then(result => {
self.postMessage(result);
}).catch(error => {
self.postMessage({
success: false,
fontFamily,
error: error.message
});
});
};`], {type: 'application/javascript'});
let fontWorker = new Worker(URL.createObjectURL(fontWorkerSource));
fontWorker.onmessage = function(e) {
const { success, fontFamily, error } = e.data;
if (success) {
fontLoadResult = "success";
} else {
fontLoadResult = error;
}
console.log(fontLoadResult);
};
fontWorker.onerror = function(error) {
fontLoadResult = error.message;
console.log(fontLoadResult);
};
</script>
</head>
<body>
</body>
</html>
|