JDBな人生  専門的なことから日常的なことまで~ まぁ自由きままに書いていきます。
2017年07月 / 06月<< 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 >>08月

アクセスランキング

[ジャンルランキング]
コンピュータ
454位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
68位
アクセスランキングを見る>>

Java Scriptで使用可能なフォントを取得する方法

Java Scriptで使用可能なフォントを取得・列挙する方法を紹介したいと思います。

と言っても、Java Scriptだけではできません。
FLASH(Action Script)とJava Scriptを組み合わせることで実現できます。

まずは、サンプルをどうぞ。

フォント取得サンプル
http://blog-imgs-34.fc2.com/j/a/b/jabnz/110524getFontsList.html

コードはこちらです。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">

function addFontsData(fonts){
    for (i=0;i<fonts.length;i++){
        document.getElementById("area").innerHTML += fonts[i] + "<br>";
    }
}

function getFontsData(){
    var flash = 1;
    if (/*@cc_on!@*/false){
        try{
            var f = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
        } catch(e) {
            flash = 0;
        }
    } else {
        flash = 0;
        for(i=0;i<navigator.mimeTypes.length;i++){
            if (navigator.mimeTypes[i].suffixes == "swf"){
                flash = 1;
            }
        }
    }
    if (flash){
        var el = document.createElement("embed");
        el.src = "getFontsList.swf?function=addFontsData";
        el.width = 1;
        el.height = 1;
        el.wmode = "transparent";
        document.body.appendChild(el);
    } else {
        document.getElementById("area").innerHTML = "FLASH使用不可";
    }
}

window.onload = function(){
    getFontsData();
}

</script>
<title>フォント取得サンプル</title>
</head>
<body>
<div id="area"></div>
</body>
</html>



仕組みとしては、

  1. FLASH読み込み
  2. 読み込み完了と同時に指定した関数に配列を渡す
  3. 配列を渡された関数が処理

というような感じです。

このサンプルは少し丁寧に作ってありますが、実際はFLASHを読み込ませる部分と関数の宣言だけあれば動きます。(念のためFLASHが使えない場合の処理も入れてあります)

これがそのFLASHです。
http://blog-imgs-34.fc2.com/j/a/b/jabnz/getFontsList.swf
(右クリック→「名前をつけてリンク先を保存」でダウンロードできます)

「getFontsList.swf?function=」に関数名を指定してください。
例えば、「getFontsList.swf?function=addFontData」などです。


あまり使い道は無いかもしれませんが・・・・・。

#久々にFLASHを作りました。これまでは「Action Script 1.0」で書いていましたが、今回からは「Action Script 3.0」を使っています。(前からやってみたいとは思っていたんですが)
フリーの開発環境も充実していて思っていたより楽に開発ができました。
なんかAS3ってJavaに似ていますね。(Javaは少しかじった程度ですが)
ともかく、これからは自分もAction Script 3.0プログラミングの初心者です。
何かコードにアドバイスなどあったら是非教えてください。(新しく「Action Script 3.0」と「AS + JS」という分類も作っておきます)
 


 
   プログラミング/開発全般    TB(0)    CM(1)    EDIT    ページ↑

コメント投稿


 管理者だけに表示

コメント

[ ]
はじめまして。
私はいまWebアプリを作っていますが、このFlashとJavaScriptが必要になりました。
使わせていただけないでしょうか。
よろしくお願いします。
2013年04月11日(木) 00:07

トラックバック

この記事へのトラックバック:

プロフィール

JDB Luigi

Author:JDB Luigi
どこにでもいるようなありふれた人間・・・という訳でもなく、かと言って怪しい宗教を信仰する変人という訳でも無い。

基本的に掲載しているコード等は煮ていただいても焼いていただいても結構ですが、利用は自己責任にてお願いいします。
また、バグ・アドバイス等もしあればよろしくお願いします。