开发者

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

this will be my first question. Sorry for mistakes.

Following code works in IE9 and Opera but does not work in Firefox.

In Firefox, I am clicking another link and going back to the page that contains the video then video is starting. Otherwise, video is not starting. (again not starting when refreshing the page)

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" />
  &开发者_JAVA百科lt;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>


The problem is with how you try to set the Filename property. It's not an attribute of the object element, it's an element inside it. (The reason that it works in IE and Opera is that they use the embed element, not the object element.)

Assuming that the Filename parameter is the first one, you can use this to set it:

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

If you don't know the order of the parameter elements, you would have to loop the child nodes and check for the one with the right name attribute.

Edit:

However, even when actually changing the the parameter value it won't work, as the object is already created. See Is it possible to change the file path of the video using javascript?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜