我有以下场景。
我向用户展示了来自服务器的一些音频文件。用户单击其中一个,然后最终对选定的文件夹和文件执行 onFileSelected。该函数的作用是更改嵌入对象的源。因此,在某种程度上,它是在接受所选文件并保存用户的选择之前对其进行的预览。视觉辅助工具.
HTML
<embed src="/resources/audio/_webbook_0001/embed_test.mp3" type="audio/mpeg" id="audio_file">
JavaScript
function onFileSelected(file, directory) {
jQuery('embed#audio_file').attr('src', '/resources/audio/'+directory+'/'+file);
};
现在,这在 Firefox 中运行良好,但 Safari 和 Chrome 拒绝更改源,无论操作系统如何。
jQuery 找到该对象(jQuery.size() 返回 1),它执行代码,但 HTML 代码没有变化。
为什么 Safari 阻止我更改<embed>
来源以及如何规避这个问题?
你应该删除embed
元素并用新元素重新注入它src
参数设置。
embed
like object
类似的是两个元素,由于它们的特殊用途(视频、音频、flash、activex 等),在某些浏览器中的处理方式与普通 DOM 元素不同。因此,更改 src 属性可能不会触发您期望的操作。
最好的办法就是删除现有的embed
反对重新插入它。如果您使用 src 属性作为参数编写某种包装函数,这应该很容易
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)