2

我想更改嵌入对象的 src 属性。我有:

<embed class="flash "id="flash" src="swf/pano.swf?panoSrc=images/a.jpg" 
                     allowFullScreen="true" 
                     width="1280" height="640" quality="high" 
                     pluginspage="http://www.macromedia.com/go/getflashplayer" 
                     type="application/x-shockwave-flash" bgcolor="#DDDDDD"/>

我试过了

function change() 
{
   document.getElementById("flash").setAttribute('src', 'swf/pano.swf?panoSrc=b.jpg');
}

但它在 Chrome 中不起作用,“仅”在 Firefox、IE 和 Opera 中起作用。我该如何修复它(使其在 Chrome 中工作)?我做错什么了吗?

编辑:这是整个 HTML 文件

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script>
        function change() {
            document.getElementById("flash").setAttribute('src', 'swf/pano.swf?panoSrc=a.jpg');
        }
    </script>

</head>
<body>


    <embed class="flash" id="flash" src="swf/pano.swf?panoSrc=images/sau.jpg" allowFullScreen="true" 
                     width="1280" height="640" quality="high" 
                     pluginspage="http://www.macromedia.com/go/getflashplayer" 
                     type="application/x-shockwave-flash" bgcolor="#DDDDDD"/>

     <script>
         change();
     </script>

</body>

页面链接:http ://chin.comli.com/test.html

4

3 回答 3

3

您需要调用您的函数。

change();

工作演示:http: //jsfiddle.net/LUfUx/

于 2012-10-19T00:22:50.457 回答
2

将您的脚本调用移动到它打算影响的代码之后,或者将它放在 window.onload 调用中。正如你所拥有的,它试图在元素存在之前对其执行。

长话短说,基于通过 jquery 更改对象嵌入源在 IE/Chrome 中动态更改嵌入视频 src(适用于 Firefox)JavaScript:更改 embed-tag 的 src-attributehttp://code.google.com /p/chromium/issues/detail?id=69648,看起来这是 Chrome 中的一个错误,唯一的解决方法是删除整个<embed>元素,然后使用更改的 src 重新插入它。

于 2012-10-19T00:26:57.253 回答
0

尝试这个

function change() {
   document.getElementById("flash").src =  'swf/pano.swf?panoSrc=b.jpg';
   // OR  document["flash"].src =  'swf/pano.swf?panoSrc=b.jpg';
}
于 2012-10-19T00:18:53.470 回答