0

我试图找出一种方法,通过单击链接/图像,能够在当前播放后进行嵌入式对象循环或不再循环。我需要它不改变页面,所以当前的歌曲继续播放。

到目前为止,我已经尝试使用 Javascript GetElementByName 来设置 loop=true/false,而它的默认值当前设置为 true。

 <a href="javascript:void(0)" title="To be implimented"><IMG ID=mode SRC=repeat.gif HEIGHT=22 onclick="PlayerMode()">
<script type="text/javascript">

var L=0;
function PlayerMode()
  {
  if(L==0){
  document.getElementById("playmode").loop="true"
  document.getElementById("mode").src="repeat.gif";
  L++;
  }

  else{
  document.getElementById("playmode").loop="false"
  document.getElementById("mode").src="repeatoff.gif";
  L--;
  }}
</script>
4

1 回答 1

0

如果您希望链接触发 JavaScript 但之后不更改页面,请确保您的onclick代码返回false. 如果 JavaScript 被禁用或不支持(无论出于何种原因),也使用简单的“#”作为链接href将避免任何不良影响或错误消息。

<a href="#" onclick="PlayerMode(); return false;">...</a>

作为替代方案,您也可以保留您的代码并让您的函数return false;在最后调用(参见最后的截图):

<a href="#" onclick="PlayerMode();">...</a>

一些进一步的优化,我会使用下面的代码(节省你使用全局变量):

function toggleLoop() {
    var player = document.getElementById('playmode');
    document.getElementById('mode').src = (player.loop = !player.loop) ? 'repeat.gif' : 'repeatoff.gif';
    return false;
}

请注意,在您当前的代码中,应该有一个已经考虑播放器循环L的初始值。1否则,您基本上会在第一次点击时启用循环(这不会改变任何东西)。

于 2012-06-21T09:18:17.467 回答