公開された Web サイトからクライアントの API 呼び出しごとに挿入する次の JavaScript コード (下部) があります。
Web ページ内のクライアントは、次のようなスクリプト タグ呼び出しを行います。
<div id="myDivID"/>
<script type="text/javascript" src="http//:srv.ab.com/api/getswf?divIdToReplace=myDivID"></script>
これが実行されると、API 呼び出しから次のコードが挿入され、div が swf に置き換えられます。
<script type="text/javascript">
(function () {
var object = document.createElement('object');
object.setAttribute('width', '300');
object.setAttribute('height', '250');
object.setAttribute('classid', 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000');
var param1 = document.createElement('param');
param1.setAttribute('name', 'movie');
param1.setAttribute('value', 'http://srv.ab.com/test.swf');
var embed = document.createElement('embed');
embed.setAttribute('src', 'http://srv.ab.com/test.swf');
embed.setAttribute('width', '300');
embed.setAttribute('height', '250');
var param2 = document.createElement('param');
param2.setAttribute('name', 'wmode');
param2.setAttribute('value', 'transparent');
object.appendChild(param1);
object.appendChild(embed); // <-- Invalid argument for IE9!!!
object.appendChild(param2);
var container = document.getElementById('myDivID');
while (container.firstChild) { container.removeChild(container.firstChild); }
container.appendChild(object);
})();
</script>
ただし、swf は IE9 では表示されませんが、Chrome と FF では正常にレンダリングされます。
注意すべきことの 1 つは、スクリプトで以下に示されているように、コンソールでのみ IE9 の無効な引数エラーが発生することです。
ここで何が欠けていますか?jquery/swfobject は、クライアント ページに挿入するプレーンな JavaScript でなければならないため、使用できません。