« IE7ベータ2日本語版レビュー | メイン | 薄すぎる携帯 »

2006年05月09日

■ Webサイト側のコントロールのアクティブ化

rev06050909.jpg

IE7β2にした事で、ちょっとサイト側でコントロールのアクティブ化をやってみることにしました。
Microsoftなどで公開されている情報では、
ActiveX コントロールのアクティブ化
の中にあるように、外部からの対話型コントロールの読み込みが必要なようです。

外部ファイルなら良いのかとちょっとPHPでやってみましたがあっさり、ダメでした(笑)

ということでMicrosoftで言われてるように、Javascriptでファイルを読み込むことに。
このブログではカレンダーとワールドカップまでのカウントダウンのFlashのActiveXコントロールがありますが、ここではカレンダーだけやることにしました。
ここで使用しているカレンダーは、Kinarie&MayさんのところのMT(MovableType)用カレンダーです。
貼り付けるコードまで出してくれるので、非常に簡単にFlashカレンダーが設置できます。

ブログに貼り付けるコードは

<OBJECT classid='clsid:D27CDB6E~><PARAM~>
<EMBED src='http://~'></EMBED></OBJECT>

のようになっていますが、これを外部ファイルにする準備をします。
MT上でも構いませんがJavascriptファイルを作成します。ここではcal.jsと言うファイル名にしました。

cal.jsの中は関数名を書きます。ここではRunCalと言う関数名にしました。

function RunCal()
{
 document.write('<OBJECT ~>\n');
 document.write('<PARAM ~>\n');
 ・・・
 document.write('<EMBED ~>>\n');
 document.write('</EMBED>\n');
 document.write('</OBJECT>\n');
}

自分が行ったのは、元のコード
<OBJECT ~><PARAM~>
<EMBED src='http://~'></EMBED></OBJECT>
のコードの < と >を1行としてdocument.writeの1行に対応するようにしました。
(1行全部をdocument.writeの後に付けても良いかもしれないですが、見にくくなるのでやってないです。)

このcal.jsファイルを作るときの注意点は、元のコードを貼り付ける時は、' (シングルクォーテーション)であるところを "(ダブルクォーテーション)に変更する点です。
document.writeが (' と ') に区切られてるので、ここをミスするとカレンダーが表示できなくなります。
cal.jsをMovableTypeのテンプレートページから作成している場合は、そのまま再構築で。エディタで作成している方は、保存後にFTPクライアントツールでサーバにアップロードすればとりあえず外部ファイル化の部分は完了です。

次にできたcal.jsファイルを読み込ませる方法ですが、元々貼り付けたページの
<head>~</head>の間に1行追加します。

<script src="[path]cal.js" type="text/javascript"></script>

[path]はこのcal.jsファイルを置いている場所です。

そして、元々ページの中でカレンダーを表示するためのコードの部分は削除せずに
<noscript>~</noscript>で囲みます。

<noscript>
<OBJECT classid='clsid:D27CDB6E~><PARAM~>
<EMBED src='http://~'></EMBED></OBJECT>
</noscript>


その後、その<noscript>の前にcal.jsファイルの中で作った関数(ここではRunCal)を実行させるようにします。

<script type="text/javascript">RunCal();</script>

以上で、とりあえずアクティブ化は、できるようになります。
ちなみに、このブログでは、一部だけ行っています。(2006年5月9日現在)
そのページはセレクト - パソコンのページで、ここだけはクリックしなくてもアクティブ化してます。(IE7βで確認済)

また以前もエントリしましたが、下記はアドビシステムズのサイトの内容のリンクです。
アクティブコンテンツのアップデートに関する記事
ここでは複数の埋め込みコンテンツがある場合 なども例として載っています。

トラックバックURL


※Trackback 元の IP と、Blog URL の IP アドレスが一致しない場合、登録まで時間かかることがあります。またトラックバックが一方通行やコメントが書き込めないサイトに関しては削除することがあります。ご了承下さい。

コメントする