改变Firefox的嵌入式对象src问题(IE9或Opera没有问题)

changing embedded objects src problem for Firefox (no problem for IE9 or Opera)

本文关键字:IE9 Opera 有问题 问题 Firefox 嵌入式 对象 src 改变      更新时间:2023-09-26

这是我第一个问题。对不起,我错了。

下面的代码可以在IE9和Opera中工作,但不能在Firefox中工作

在Firefox中,我点击另一个链接并返回包含该视频的页面视频开始了。否则,视频无法开始。(刷新页面时不启动)

function output_video_URL(id, local_path_of_video, remote_path_of_video) {
    var http_check = getHTTPObject();
    var local_URL = local_server + local_path_of_video;
    var remote_URL = remote_server + remote_path_of_video;
    http_check.open("HEAD", local_path_of_video);
    http_check.onreadystatechange = handleHttpResponse_check;
    http_check.send(null);

    function handleHttpResponse_check() {
        if (http_check.readyState == 4){
            if (http_check.status == 200) {
                var video = document.getElementById(id);
                video.src = local_URL;
                video.parentNode.Filename = local_URL;
            }
            else if (http_check.status == 404) {
                var video = document.getElementById(id);
                video.src = remote_URL;
                video.parentNode.Filename = remote_URL;
            }
        }
    }
}
HTML:

<object width="364" height="266" classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" id="mediaplayer1">
  <param name="Filename" value="filmler/canakkeleklipkucuk.wmv" />
  <param name="AutoStart" value="True" />
  <param name="ShowControls" value="false" />
  <param name="ShowStatusBar" value="false" />
  <param name="ShowDisplay" value="false" />
  <param name="AutoRewind" value="false" />
  <embed id = "canakkeleklip" type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/MediaPlayer/" width="320" height="240" src="filmler/canakkeleklipkucuk.wmv" autostart="True"  showcontrols="false" showstatusbar="false"  showdisplay="false" autorewind="false"> </embed>
</object>
<script type = "text/javascript"> output_video_URL('canakkeleklip', 'videos/canakkeleklipkucuk.wmv', 'filmler/canakkeleklipkucuk.wmv') </script>

问题在于如何设置Filename属性。它不是object元素的属性,它是其中的一个元素。(它在IE和Opera中工作的原因是它们使用embed元素,而不是object元素。)

假设Filename参数是第一个参数,您可以使用以下命令来设置它:

video.parentNode.getElementsByTagName('param')[0].value = local_URL;

如果您不知道参数元素的顺序,则必须循环子节点并检查具有正确name属性的子节点。

编辑:

然而,即使在实际更改参数值时,它也不会工作,因为对象已经创建。参见是否可以使用javascript更改视频的文件路径?