コード内で音楽再生を担当させるコンポーネントのIDが指定されてない為、
ブラウザの種、ブラウザで標準再生コンポーネントとされている設定によって
実際に文書上で配置される再生コンポーネントが異なる事になってしまっている.
で、そういった根本的な問題を抜いて現象を説明すると、
IEで展開すると、標準では再生はMediaPlayerとなる.
MediaPlayerで再生対象を指定するプロパティ名は確かFileNameだったと記憶
している.なのでemb.FileName="URL";と指定してやれば、一応解決はする.
デフォルトで設定したsrcが読み込まれるのは最初に再生コンポーネントが
読み込まれた際、値が初期値としてインターフェースを通して渡されるからだと
推測される.
再生コンポーネントを指定しない書き方は本来すべきでは無いが、そういった
書き方を前提とした場合、たとえば以下のように実装されたコンポネントの
プロパティを全て検索し、ファイル名に該当するだろうものを特定し
設定させるという手法が考えられる.
が、むろんこのような手法は基本的に勧められない.
sevi-
function song()
{
url=document.aa.cc.value;
document.aa.bb.value="mose/"+url;
var src_old = emb.src.toUpperCase();
for(var i in emb)
{
if(i.toUpperCase()=="OUTERHTML" || typeof(emb[i]) == "function" || emb[i] == null)
continue;
if(new String(emb[i]).toUpperCase().replace(/\\/g, "/").indexOf(src_old)==-1)
continue;
try
{
emb[i] = "mose/"+url;
}
catch(ex)
{
continue;
}
}
}