2015-05-15 96 views
0

有人可以告訴我這段代碼中的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> 
+0

什麼線引發錯誤? –

回答

0

您得到了標點錯在你的onclick屬性不止一個,比如這裏:

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

它缺少左括號。語法檢查的原因不會立即捕捉到這是因爲您將代碼放入字符串中。你不應該這樣做。

既然你使用的是jQuery,那麼用.click(function() { ... })代替內聯屬性怎麼樣?只是要小心讓你的捕獲變量正確。

0

的問題在63行

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

應該是:

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