javascript - 在本地加载正常但在我发布时加载不正确

标签 javascript json html audio

我正在尝试创建一个可以在线运行的小型 RadioPlayer。现在这是我拥有的 JavaScript 代码

function changeLink(link)
{
/* this changes the link and plays the radio*/
var radio= document.getElementById("radio");
radio.src = link;
radio.play();

}

function jsonLoad()
{
  var xmlhttp = new XMLHttpRequest();
  var url = "playList.txt";

  xmlhttp.onreadystatechange = function () {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          var myArr = JSON.parse(xmlhttp.responseText);
          readJSON(myArr);
      }
  }
  xmlhttp.open("GET", url, true);
  xmlhttp.send();

   }

function readJSON(obj)
{
    var list = "<ui>";
  for (var i = 0; i < obj.length ; i++) 
  {
      list += "<li><a href='javascript:changeLink(" +"\"" + obj[i].radioLink + "\"" +");'>" + obj[i].name + "</a></li>";
     }
  list += "</ui>";

  document.getElementById("radioLoad").innerHTML = list;
}

另外这是 HTML 代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title> My Radio Player</title>
    <script src="Script.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">

</head>
<body onload="jsonLoad()">

    <p>This is the link that i will change his property</p>
    <audio id="radio" src="#" controls autoplay preload="auto" ></audio>


    </audio>
    <br>
    <p id="radioLoad"> 

    </p> 




</body>

问题是 JSON 文件在本地运行良好,网页显示如我所料。但是,当我将它放在服务器上时,就像未加载 JSON 文件并且未触发其他功能 (readJSON(myArr);) 一样。似乎 IF 条件有问题,但我不知道为什么。有人可以帮助我吗?

编辑:似乎该代码只能在 Google Chrome 中本地运行。在 Internet Explorer 中生成了链接,但当我单击它们时它们不播放 radio 。同样在我测试的 iphone 模拟器上,音频标签无法正常工作。我也会尝试不同的网络浏览器。

EDIT2:现在可以使用了。我设法弄清楚了这个问题。代码没有问题,问题出在我托管的服务器上。所以我更改了网络托管服务商,现在可以使用了。你可以在这里看到它: http://radioplay4all.16mb.com/

还是谢谢你:)

最佳答案

如果不亲自调试,我无法确定,但我很确定您的问题出在您的 readJSON() 中。函数,当您尝试获取 .length 时对象的属性(JSON.parse() 返回一个 javascript 对象),因为对象没有 .length属性(property)。要查找对象具有的键数,您可以使用 Object.keys(myArr).length .所以在你的 for 循环中,obj.length为 Null,所以 i不能小于Null,所以不执行。所以如果你替换 i < obj.lengthi < Object.keys(obj).length这应该可以解决问题。

关于javascript - 在本地加载正常但在我发布时加载不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30423910/

相关文章:

javascript - 使用 Karma 进行 ngOnInit 和 MediaChange 测试

java - 获取 JSON 数组 JAVA 中的第一个实例

javascript - 在 onchange 事件中使用 html 中的自定义数据属性

html - Express 正确定义 post 路由方法

javascript - Angularjs:更新ng-model时选择不更新

javascript - document.currentScript 为空

javascript正则表达式不匹配前导零

javascript - 使用javascript动态添加 anchor 到列表中的问题

json - 自定义时间。时间类型返回到数据存储区

java - 使用 Java 将 HTML 转换为 PDF