繁体   English   中英

输入JavaScript意外结束

[英]Unexpected end of input JavaScript

有人可以告诉我这段代码中的JavaScript有什么问题吗? 它说“输入意外结束”,但是我看不到任何错误。 我所有的语句似乎都在某个时刻结束了,每个语法检查器都说没有检测到错误。

<!DOCTYPE html>
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <title>Slide Editor</title>
    <style>
      @font-face {
        font-family: SegoeUILight;
        src: url(Segoe_UI_Light.ttf);
      }

      * {
        font-family: SegoeUILight;
      }
    </style>
    <script src="Slide/RevealJS/lib/js/html5shiv.js"></script>
    <script src="Slide/RevealJS/lib/js/head.min.js"></script>
  </head>

  <body onload="editSlideshow()">
    <div id="sl">
      <span id="sls"></span>
    </div>
    <span id="slt"></span>
    <div id="editor">
    </div>
    <script>
      function getURLParameters(paramName) {
        var sURL = window.document.URL.toString();
        if (sURL.indexOf("?") > 0) {
          var arrParams = sURL.split("?");
          var arrURLParams = arrParams[1].split("&");
          var arrParamNames = new Array(arrURLParams.length);
          var arrParamValues = new Array(arrURLParams.length);

          var i = 0;
          for (i = 0; i < arrURLParams.length; i++) {
            var sParam = arrURLParams[i].split("=");
            arrParamNames[i] = sParam[0];
            if (sParam[1] != "")
              arrParamValues[i] = unescape(sParam[1]);
            else
              arrParamValues[i] = "No Value";
          }

          for (i = 0; i < arrURLParams.length; i++) {
            if (arrParamNames[i] == paramName) {
              //alert("Parameter:" + arrParamValues[i]);
              return arrParamValues[i];
            }
          }
          return "No Parameters Found";
        }
      }

      var name = getURLParameters("show");
      var slideCount = 1;

      function editSlideshow() {
        if (localStorage.getItem("app_slide_doc_" + name) == null) {
          $("#sls").append('<button onclick = "loadSlide\'1\')" id = "slide_1">Slide 1</button>');
          $("#sl").append('button onclick = "newSlide()">New Slide</button>');
          slideCount = 1;
        } else {
          var textArray = JSON.parse(localStorage.getItem("app_slide_doc_" + name));
          slideCount = textArray.length;
          var slideCnt = textArray.length - 1;
          for (var i = 0; i <= slideCnt; i++) {
            $("#sls").append('<button onclick = "loadSlide\'' + (i + 1) + '\')" id = "slide_' + (i + 1) + '">Slide ' + (i + 1) + '</button>');
          };
          $("sl").append('<button onclick = "newSlide()">New Slide</button>');
        };
      };

      function loadSlide(num) {
        var array = JSON.parse(localStorage.getItem("app_slide_doc_" + name));
        if (array == null) {
          document.getElementById("editor").innerHTML = "<p><textarea rows = '15' cols = '100' id = 'editTxt'></textarea></p>";
          document.getElementById("slt").innerHTML = "Slide " + num;
          $("#editor").append("<p><button onclick = 'saveSlide(\"" + num + "\")'>Save Slide</button><button onclick = 'deleteSlide(\"" + num + "\")'>Delete Slide</button></p>");
        } else if (array[num - 1] == null) {
          document.getElementById("editor").innerHTML = "<p><textarea rows = '15' cols = '100' id = 'editTxt'></textarea></p>";
          document.getElementById("slt").innerHTML = "Slide " + num;
          $("#editor").append("<p><button onclick = 'saveSlide(\"" + num + "\")'>Save Slide</button><button onclick = 'deleteSlide(\"" + num + "\")'>Delete Slide</button></p>");
        } else {
          var slideArray = JSON.parse(localStorage.getItem("app_slide_doc_" + name));
          var text = slideArray[num - 1];
          document.getElementById("editor").innerHTML = "<p><textarea rows = '15' cols = '100' id = 'editTxt'></textarea></p>";
          document.getElementById("editTxt").value = text;
          document.getElementById("slt").innerHTML = "Slide " + num;
          $("#editor").append("<p><button onclick = 'saveSlide(\"" + num + "\")'>Save Slide</button><button onclick = 'deleteSlide(\"" + num + "\")'>Delete Slide</button></p>");
        };
      };

      function saveSlide(num) {
        if (localStorage.getItem("app_slide_doc_" + name) == null) {
          var text = document.getElementById("editTxt").value;
          var textArray = new Array();
          textArray[num - 1] = text;
          localStorage.setItem("app_slide_doc_" + name, JSON.stringify(textArray));
        } else {
          var textArray = JSON.parse(localStorage.getItem("app_slide_doc_" + name));
          var text = document.getElementById("editTxt").value;
          textArray[num - 1] = text;
          localStorage.setItem("app_slide_doc_" + name, JSON.stringify(textArray));
        };
      };

      function newSlide() {
        var nextSlide = slideCount + 1;
        $("#sls").append('<button onclick = "loadSlide(\'' + nextSlide + '\')" id = "slide_' + nextSlide.toString() + '">Slide ' + nextSlide.toString() + '</button>');
        slideCount = nextSlide;
      };

      function deleteSlide(num) {
        if (localStorage.getItem("app_slide_doc_" + name) == null) {
          if (num !== "1") {
            $("#slide_" + num).remove();
            document.getElementById("editor").innerHTML = "";
            document.getElementById("slt").innerHTML = "";
            slideCount = slideCount - 1;
            location.reload();
          } else {
            alert("The first slide cannot be deleted.");
          };
        } else {
          var textArray = JSON.parse(localStorage.getItem("app_slide_doc_" + name));
          if (num !== "1") {
            $("#slide_" + num).remove();
            document.getElementById("editor").innerHTML = "";
            document.getElementById("slt").innerHTML = "";
            slideCount = slideCount - 1;
            textArray.splice((num - 1), 1);
            localStorage.setItem("app_slide_doc_" + name, JSON.stringify(textArray));
            location.reload();
          } else {
            alert("The first slide cannot be deleted.");
          };
        };
      };
    </script>
  </body>
</html>

您在多个onclick属性中出现了标点错误,例如:

$("#sls").append('<button onclick = "loadSlide\'1\')" id = "slide_1">Slide 1</button>');

它缺少开头括号。 语法检查不能立即发现问题的原因是因为您将代码放在字符串中。 您不应该这样做。

由于您使用的是jQuery,如何使用.click(function() { ... })而不是内联属性? 请小心,以确保正确捕获的变量。

第63行的问题

$("#sl").append('button onclick = "newSlide()">New Slide</button>');

应该:

$("#sl").append('<button onclick = "newSlide()">New Slide</button>');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM