dev.convexstyle.net

IE での Active X セキュリティー回避 Javascript

del.icio.us hatena bookmark

最近 Flash などの Active X コンテンツを扱うサイトに訪問するたびに、ワンクリックしなければコンテンツがアクティブ化されない。これは SP 2 がインストールされたマシーンでの Internet Explorer の Active X セキュリティの仕様が変更したためらしい。基本的にはサイト上の Flash などの Active X コンテンツはユーザーの何らかのアクションを基に動くものだから、これはユーザーにとっては結構迷惑な話かもしれない。自分も突然 Flash コンテンツ全体が mouseover されるようになって驚いた。

この回避策は凄い簡単。Flash などの Active X コンテンツを外部の Javascript で読みこめば終了。Adobe からもこれに対応した Javascript Library が公開されているし、何人かの開発者の方も自作されている。

http://www.adobe.com/jp/devnet/activecontent/articles/devletter.html

自分も自分の使いやすいように、Active X セキュリティ回避用 Javascript Library(write_swf.js)を作ってみた。様は、swf を HTML 上に表示するために必要な項目、場合によって必要な項目、FlashVars の様に状況に応じて必要な項目を連想配列によって getSwfElement という関数に渡し設定し、writeSwf に swf を表示させたい場所の id を受け渡すことによって表示される。サンプルファイルは下記の通りである。
FlashVars に関して Array の length 分、fv0, fv1, fv2,・・・といった形で Flash 内で取得することができる。また、注意点として、Javascript の内部エンコードと html のエンコードを一致させないと Internet Explorer などでは表示されないので、エンコードは一致させるようにする。ここではエンコードを UTF-8 に統一している。

【ダウンロード】
write_swf.zip


【サンプルソース】


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>test</title>
<script language="Javascript" type="text/javascript" src="./js/write_swf.js"></script>
<script language="Javascript" type="text/javascript">
<!--
var swf_obj = new Object();

// 必要な項目
swf_obj['Version'] = 8;
swf_obj['URL'] = './test.swf';
swf_obj['width'] = '550';
swf_obj['height'] = '400';
swf_obj['id'] = 'test';

/*
// 下記の変数が必要な場合、コメントアウトを取り記述する
swf_obj['align'] = 'middle';
swf_obj['allowScriptAccess'] = 'sameDomain';
swf_obj['quality'] = 'high';
swf_obj['bgcolor'] = '#000000';
*/

/*
// FlashVars が必要な場合は、コメントアウトを削除し、下記の形式で記述する
swf_obj['flashvars'] = new Array('test1', 'test2');
*/

getSwfElement(swf_obj);
//-->
</script>
</head>
<body bgcolor="#FFFFFF">
<div id="swf">
<script language="Javascript" type="text/javascript">
<!--
writeSwf('swf');
//-->
</script>
</div>
</body>
</html>

この記事関連する書物 from Amazon.co.jp

トラックバック

このエントリーのトラックバックURL:
http://www.convexstyle.net/mt/mt-tb.cgi/5

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)