gpt4 book ai didi

javascript - 在IE中,脚本不会更改div的innerhtml

转载 作者:行者123 更新时间:2023-12-03 00:59:10 25 4
gpt4 key购买 nike

我正在制作一个函数,可在单击歌曲标题时更改embed标签的来源。这在Chrome和Firefox中有效,但在Internet Explorer中无效。

这是函数:

function loadSong(title) {
var wav = "samples/" + title + ".wav";
var ie = "<embed id='ie' src='" + wav + "'></embed>";
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
//test for MSIE x.x
var newSong = document.getElementById("playerwrapper")
newSong.innerHTML = ie;
} else {
var audio = document.getElementById("audio");
audio.pause();
audio.src = wav;
audio.play();
}
}

是的,我尝试在Chrome和Firefox中使用嵌入式播放器,并尝试在IE中将html5音频元素与m4a文件一起使用(源的更改方式与在Chrome和firefox中相同)。

接下来,这是音频播放器本身(包括整个内容,以防万一;如果无关紧要,请抱歉):
<?php
if($samples == 1) {
if (isset($_SERVER['HTTP_USER_AGENT']) &&
(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))
{
print "
<div id='playrwrapper'>
<embed id='ie' src='samples/alright.wav' autostart='false'>
</embed>
</div>";
} else {
print "
<div id='playerwrapper'>
<audio id='audio' preload='auto' tabindex='0' controls>
<source id='wav' type='audio/wav' src='samples/alright.wav'/>
</audio>
</div>";
};
};
?>

最后,这是函数的调用方式:
<p onclick='loadSong("songtitle")'>Song Title</p>
<p onclick='loadSong("anothersongtitle")'>Another Song Title</p>
<p onclick='loadSong("doomkittiesofmars")'>Doom Kitties of Mars</p>

预先感谢您的任何建议。

最佳答案

IE是个a子,不是吗?

IE不会重新加载object元素(如果其源已更改)。仅在页面加载期间加载它。

那么如何解决呢?简单:克隆现有元素,删除旧元素,然后追加新元素。例:

// innerHTML bla bla bla
newS = newSong.cloneNode( true ) // Deep copy
newSong.parentNode.replaceChild( newS, newSong )

关于javascript - 在IE中,脚本不会更改div的innerhtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10256641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com