2013-11-02 96 views
0

所以,这是我的第一个Windows 8应用程序,我正在使用html/css和JS进行操作。我在开发时首先在浏览器上开发了它(I知道,不是一个好习惯),我想在Windows 8.1应用程序上尝试它 一切似乎有轻微的故障,我很容易修复,但JavaScript代码完全无法工作,即使它在浏览器上完美工作。短小故事:该应用可以让你从1小时倒下,或10下倒数(出于某种目的)倒计时,它有两个倒数倒数:一个开始和一个停止按钮。Javascript代码不能在Visual Studio Express 2013 Preview for Windows中运行

我不知道为什么,在cosole显示以下错误:HTML1701

下面的代码:

(function() { 
"use strict"; 

var app = WinJS.Application; 
var activation = Windows.ApplicationModel.Activation; 

app.onactivated = function (args) { 
    if (args.detail.kind === activation.ActivationKind.launch) { 
     if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) { 
      // TODO: This application has been newly launched. Initialize 
      // your application here. 
     } else { 
      // TODO: This application has been reactivated from suspension. 
      // Restore application state here. 
     } 
     args.setPromise(WinJS.UI.processAll()); 
    } 
}; 

app.oncheckpoint = function (args) { 
    // TODO: This application is about to be suspended. Save any state 
    // that needs to persist across suspensions here. You might use the 
    // WinJS.Application.sessionState object, which is automatically 
    // saved and restored across suspension. If you need to complete an 
    // asynchronous operation before your application is suspended, call 
    // args.setPromise(). 

    $(document).ready(function() { 
     var h, m, s, h1, m1, s1, output, output1, inter, inter1; 

     //Preparing all the functions 

     //facts' animation function 

     function facts() { 
      function solve() { 
       setTimeout(function() { 
        $("#fun1").animate({ opacity: "0", }, 500, function() { 
         $("#fun2").animate({ opacity: "1" }, 500); 
        }); 
       }, 10500); 
       setTimeout(function() { 
        $("#fun2").animate({ opacity: "0", }, 500, function() { 
         $("#fun3").animate({ opacity: "1" }, 500); 
        }); 
       }, 21500); 
       setTimeout(function() { 
        $("#fun3").animate({ opacity: "0", }, 500, function() { 
         $("#fun4").animate({ opacity: "1" }, 500); 
        }); 
       }, 31500); 
       setTimeout(function() { 
        $("#fun4").animate({ opacity: "0", }, 500, function() { 
         $("#fun1").animate({ opacity: "1" }, 500); 
        }); 
       }, 41500); 
      } 
      solve(); 
      setInterval(function() { solve(); }, 41520); 

      //Work Counting functions 

     } 

     function startWork() { 
      h = 1; 
      m = 0; 
      s = 0; 
      document.getElementById("WTM").innerHTML = "01:00:00" 
      inter = setInterval(function() { countWork() }, 1000); 
     } 

     function countWork() { 
      if (s == 0 && m == 0 && h == 0) { 
       $("#StartW").animate({ opacity: 1, }, 500); 
       clearInterval(inter); 
      } 
      else if (s == 0 && m == 0 && h != 0) { 
       h = h - 1; 
       m = 59; 
       s = 59; 
      } 
      else if (s == 0 && m != 0) { 
       m = m - 1; 
       s = 59; 
      } 
      else if (s != 0) 
      { s = s - 1; } 
      if (typeof (s) != "string" && s < 10) 
      { s = "0" + s; } 
      if (typeof (m) != "string" && m < 10) 
      { m = "0" + m; } 
      if (typeof (h) != "string" && h < 10) 
      { h = "0" + h; } 
      output = h + ":" + m + ":" + s; 
      document.getElementById("WTM").innerHTML = output; 
     } 

     //Rest Counting functions 

     function startRest() { 
      h1 = 0; 
      m1 = 10; 
      s1 = 0; 
      document.getElementById("RTM").innerHTML = "00:10:00"; 
      inter1 = setInterval(function() { countRest() }, 1000); 
     } 

     function countRest() { 
      if (s1 == 0 && m1 == 0 && h1 == 0) { 
       $("#StartR").animate({ opacity: 1, }, 500); 
       clearInterval(inter1); 
      } 
      else if (s1 == 0 && m1 == 0 && h1 != 0) { 
       h1 = h1 - 1; 
       m1 = 59; 
       s1 = 59; 
      } 
      else if (s1 == 0 && m1 != 0) { 
       m1 = m1 - 1; 
       s1 = 59; 
      } 
      else if (s1 != 0) 
      { s1 = s1 - 1; } 

      if (typeof (s1) != "string" && s1 < 10) 
      { s1 = "0" + s1; } 
      if (typeof (m1) != "string" && m1 < 10) 
      { m1 = "0" + m1; } 
      if (typeof (h1) != "string" && h1 < 10) 
      { h1 = "0" + h1; } 
      output1 = h1 + ":" + m1 + ":" + s1; 
      document.getElementById("RTM").innerHTML = output1; 
     } 

     //Calling the needed functions 

     $("#StopW").click(function() { 
      clearInterval(inter); 
      document.getElementById("WTM").innerHTML = "00:00:00"; 
      $("#StartW").animate({ opacity: 1, }, 500); 
     }); 

     $("#StartW").click(function() { 
      startWork(); 
      $("#StartW").animate({ opacity: 0, }, 2000); 
     }); 


     $("#StopR").click(function() { 
      clearInterval(inter1); 
      document.getElementById("RTM").innerHTML = "00:00:00"; 
      $("#StartR").animate({ opacity: 1, }, 500); 

     }); 

     $("#StartR").click(function() { 
      startRest(); 
      $("#StartR").animate({ opacity: 0, }, 2000); 
     }); 

     facts(); 

    }); 
}; 

app.start(); 
})(); 

回答

0

看来你使用jQuery。确保您使用的是jQuery 2.0,并通过您的应用程序包在本地提供。

你看到的具体错误很可能是使用innerHTML来设置倒数计时器的结果。由于应用程序使用提升的权限运行(可能访问用户文件等),因此您的代码不得执行可能会引入漏洞的事情。 innerHTML可以用来动态加载脚本,因此它的使用是不鼓励的。

在您的应用程序中,您可以使用innerText来代替。如果您必须使用innerHTML,请尝试使用toStaticHTML()或将其包装在MSApp.execUnsafeLocalFunction()中。你可以阅读更多关于developing secure apps

相关问题