2011年 6月 12

とあるスクリプトで javascriptでiframeを書き、そのフレームをさらに書き換える・・・というものがあるのですが、スクリプトをページ内に複数設置すると、chromeでエラーになってしまうので回避策。

今までは

document.write('<IFRAME id="フレーム名" name="フレーム名" ....></IFRAME>');

で描写して、ターゲットとなるiframeを

var target_iframe = frames[フレーム名];

で取得していたのですが、これが2度目以降の実行時にundefinedとなってしまう。

var target_iframe = document.getElementById(ifrname).contentWindow;

でもやはり取得できず。
他のブラウザでは問題ないので気が付かなかったのだけれど、chromeのみ症状が出た。

DOMでiframeを追加

解決策としてはDOMでiframeを追加する事で望んだ結果が得られた。

var iframe = document.createElement('IFRAME');
iframe.setAttribute('id', 'フレーム名');
iframe.setAttribute('name', 'フレーム名');
...
document.body.appendChild(iframe);

.. continue reading ..


Filed under: JavaScript

Trackback Uri