とあるスクリプトで 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);