アップロードされたフォントファイル(TTF)を使用して要素のフォントを動的に変更できるコードを開発しようとしています。以下のコードはChrome、Opera、Firefoxでは正常に動作しますが、IE、Edge、Safariでは動作しません。JavaScript/JQueryで動的にCSS font-faceを変更
<html>
<head>
<style>
#my-font {
margin-top: 50px;
font-size: 20pt;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(function(){
$("#font").change(function(){
// post the font file to the php script that will move the file uploaded to the folder "fonts"
$.ajax({
url: 'movefontfile.php',
type: 'POST',
data: new FormData($("#send")[0]),
processData: false,
contentType: false,
}).done(function(name){
// set the font face
var f = new FontFace("myfont", "url(fonts/"+name+")", {});
f.load().then(function (loadedFace) {
document.fonts.add(loadedFace);
var fptags = document.getElementById('my-font');
fptags.style.fontFamily = "myfont, sans-serif";
});
});
})
});
</script>
</head>
<body>
<form id="send">
<input type="file" id="font" name="font">
</form>
<p id="my-font">
This is a font text
</p>
</body>
</html>
これは、PHPのコードは次のとおりです。
<?php
$name = $_FILES['font']['name'];
move_uploaded_file($_FILES['font']['tmp_name'], 'fonts/'.$name);
echo $name;
?>
誰かが私を助けることができますか?私はすべての一般的なブラウザで動作するコードが必要です。ありがとう。
あなたは可能性が高いページをリロードする必要がありますこれらのブラウザでは –