3

我有一个嵌入在 DIV 中的 flash 对象。现在我想在该 div 上方使用一个链接('a' 标签),以便用户能够重新加载该 flash 拨号程序,或者更具体地说,它包含在其中的 div 标签(我无法以任何方式更改 flash 文件)。

我试过使用下面的这个 JS 函数,但它不起作用(点击“重新加载”链接时不重新加载 div 和内容。

<div class="userProfile">
<script type="text/javascript">
     function refreshDialer(){
             document.getElementById("dialerDiv1").contentWindow.location.reload(true);
            }
</script>
<a href="javascript: refreshDialer()">Reload</a>
<div id="dialerDiv1">
    <embed type="application/x-shockwave-flash" wmode="opaque"                     
            src="http://dummysite.com"
            width="301"
            height="401"
            id="popUpSwf"
            name="popUpSwf"
            quality="high"
            border="none"
            allowscriptaccess="always"
                            pluginspage="http://www.adobe.com/go/getflashplayer"
            scale="noscale"
            menu="false"
            flashvars="#" />
</div>
</div>

我在这里做错了什么?

谢谢

4

2 回答 2

8

尝试这个:

function refreshDialer(){
   //alert("In function");
   var container = document.getElementById("dialerDiv1");
   var content = container.innerHTML;
   //alert(content);
   container.innerHTML= content;
}

youtube 链接为例。

于 2012-06-06T11:29:19.537 回答
2

你可以,但你使用的方式是错误的。当您想重新加载某些内容时,您只需附加一个搜索查询,以便它刷新源。

例如,当有一个经常变化的图像(比如验证码)并且你想再次加载它而不刷新浏览器时,你可以这样做:

初始代码:

<img src="captcha.png" alt="captcha" />

刷新代码:

<img src="captcha.png?1" alt="captcha" />

因此,同样的技术也可以在您的页面中使用。所以DIV的 ID 是'dialerDiv1'对的,为此,如果你使用 jQuery,你可以这样刷新:

function refreshDialer()
{
    var d = new Date();
    document.getElementByTagName('embed')[0].setAttribute('src',  + document.getElementByTagName('embed')[0].getAttribute('src') + d.getMilliseconds());
}

或者,如果您不使用 jQuery,则需要以setAttribute()这种方式使用该函数:

function refreshDialer()
{
    var d = new Date();
    $('#dialerDiv1 embed').attr('src', $('#dialerDiv1 embed').attr('src') + d.getMilliseconds());
}

简单的。希望这可以帮助。

于 2012-06-06T11:22:05.510 回答