0

我有以下代码,我无法从第一个 iframe 在第二个 iframe 中播放播放器。虽然如果播放歌曲的链接在主页中而不是在第一个 iframe 中,这可以正常工作

<script type="text/javascript">
function music(dir) {
          alert(dir);
        var iframe = document.getElementById("player");
        iframe.src = dir;
      } 
</script>

<iframe src="home.php" frameborder="0" scrolling="no" width="100%" height="100%" style="background:#993333"></iframe>

<iframe id="player" src="player.php" frameborder="0" scrolling="no" width="400px" height="100px" style="background:#66FF99"></iframe>

//home.php

<a href="#" onclick="return music('player.php?item=test2')" >Song2</a>

//player.php

<object type="application/x-shockwave-flash" data="dewplayer.swf?mp3=mp3/music.mp3&amp;autostart=1" width="200" height="20" id="dewplayer"><param name="wmode" value="transparent" />
</object>
4

3 回答 3

0
  1. 第一个 iframe 没有 ID。
  2. 这两个 iframe 都不属于彼此的document. 因此,如果您必须更改其中一个的 url,则必须parent在图片中引入。
于 2013-03-07T07:03:16.510 回答
0

您可以使用新的window.postMessageAPI 将消息从一个远程框架发送到它的父级,然后让父窗口代理通过将该消息传递到另一个 iframe 将消息返回到另一个 iframe。

有关这方面的文档,请参阅 Mozilla 页面 ( https://developer.mozilla.org/en-US/docs/DOM/window.postMessage )

于 2013-03-07T07:20:50.247 回答
0

示例:main.php

<script type="text/javascript">
function music(dir) {
          alert(dir);
        var iframe = document.getElementById("player");
        iframe.src = dir;
      } 
</script>
<iframe src="home.php" frameborder="0" scrolling="no" width="100%" height="100%" style="background:#993333"></iframe>

<iframe id="player" src="player.php" frameborder="0" scrolling="no" width="400px" height="100px" style="background:#66FF99"></iframe>

播放器.php

<?php if(!empty($_GET['item'])){echo '<div>item = '.$_GET['item'].'</div>';} ?>
<object type="application/x-shockwave-flash" data="dewplayer.swf?mp3=mp3/music.mp3&amp;autostart=1" width="200" height="20" id="dewplayer"><param name="wmode" value="transparent" />
</object>

主页.php

<a href="#" onclick="parent.music('player.php?item=test2')" >Song2</a>
于 2013-03-07T07:57:50.330 回答