0

我在 IE、Chrome 和 Firefox 中测试了以下代码,但在其中任何一个中都不起作用。我已经阅读了几个关于类似问题的问题,但他们没有提供解决我的例子的解决方案。

我正在尝试创建一个与 JWplayer 交互的暂停/播放按钮(我也希望它与 flowplayer 交互,一旦我让按钮工作)并且图像将根据当前存在的图像而改变。我还有一个停止按钮,可以完全停止播放器并将暂停/播放按钮的图像更改为暂停。

这是我当前的代码:

<script type="text/javascript">
function changeimg()
{
  var obj = document.getElementById('image1');
  var imgtag1 = '<img src=\'PLAY.png\'>';
  var imgtag2 = '<img src=\'PAUSE.png\'>';
  if(obj.innerHTML == imgtag2)
  {obj.innerHTML = imgtag1;}
  else
  {obj.innerHTML = imgtag2;}
  return;
}

function playimg()
{
  document.getElementById('image1').innerHTML = '<img src=\'PLAY.png\'>';
  return;
}

</script>

<div id="image1" href="#" onclick="changeimg(); jwplayer('mediaspace1').play(); jwplayer('mediaspace2').play(); jwplayer('mediaspace3').play(); jwplayer('mediaspace4').play();"><img src='PLAY.png'></div>
<div href="#" onclick="playimg(); jwplayer('mediaspace1').stop(); jwplayer('mediaspace2').stop(); jwplayer('mediaspace3').stop(); jwplayer('mediaspace4').stop();"><img src='STOP.png'></div>

播放/暂停功能有效,第一个 div 将变为暂停 img(因此 javascript 正在运行),如果我点击第二个 div(停止功能 - 触发 playimg() ),它将重新开始播放,但它如果我再次单击暂停按钮,将不会变回播放图像。

出于安全原因,我无法链接该网站,但我们将不胜感激

4

3 回答 3

0

看起来您真正想要更改的只是 IMG 标记的 SRC,而不一定是整个 innerHTML。正如 machineghost 在他的评论中提到的那样,可能会添加空格或对完整 HTML 进行其他更改,这可能会使您的比较结果为假。

但是,您可以检查是否 obj.src == "PLAY.png" 并直接设置 SRC 属性。像这样的东西:

function changeimg()
{
  var obj = document.getElementById('image1');
  var img1 = 'PLAY.png';
  var img2 = 'PAUSE.png';
  if(obj.src == img2)
  {obj.src = img1;}
  else
  {obj.src = img2;}
  return;
}
于 2012-06-11T17:43:18.397 回答
0

我认为您要替换的 innerhtmlchangeimg()正在影响整个 obj 元素,这是一个 div。因此,if(obj.innerHTML == imgtag2)将返回,false因为 div innerhtml 不是 imgtag2,但是下次您要调用changeimg()时,“obj”将是未定义的,因为您将其 innerhtml 替换为没有 id 的 HTML 代码:{obj.innerHTML = imgtag2;}

检查控制台以查看是否有任何 javascript 错误,它应该在if(obj.innerHTML == imgtag2)

rgds。

于 2012-06-11T17:43:51.557 回答
0

只需检查是否PLAY存在,然后根据它更改innerHTML

function changeimg()
{
    var obj = document.getElementById('image1');
    var imgtag1 = '<img src=\'PLAY.png\'>';
    var imgtag2 = '<img src=\'PAUSE.png\'>';
    if(obj.innerHTML.indexOf('PLAY') != -1)
    {obj.innerHTML = imgtag2;}
    else
    {obj.innerHTML = imgtag1;}
    return;
}
于 2012-06-11T17:47:50.553 回答