2011-11-21 5 views
0

나는 코멘트를 표시하는 내 구글 앱 엔진 애플리케이션에 Comments 핸들을 가지고있다. (여기서 '츄'로 정의) 사용자가 localStorage에없는 경우 내가 페이지로드를 중지하려면. "load event"chooser: "undefined" : onload 이벤트에서 else 절을 ​​트리거하는 방법은 무엇입니까?

는 내가 처음이 경고를 얻을. "츄는"정의되지 않기 때문에 나는 다른 절 트리거 기대하지만 난 다른 절에 경고를하지 않습니다.

또한, 주문 목록의 첫 번째 항목은 나머지를 표시되지만되지 않습니다. 그래서 거기에 페이지 로딩 문제가 있다고 가정합니다. 이 문제를 어떻게 해결할 수 있습니까?

class Comments(webapp.RequestHandler): 
    def get(self): 
     self.response.out.write(""" 
<html> 
    <head> 
    <title>Choices</title> 
<script type="text/javascript"> 

function showChoices() 

{ 

    alert("load event"); 
    var chooser = localStorage.getItem("chooser"); 
    alert("chooser: " + chooser); 

    if (chooser) 
    { 
    document.getElementById("topten").style.display="inline"; 
    } 
    else 
    { 
    alert("else triggers"); 
    document.write("get an invitation"); 
    } 
} 

    window.onload = showChoices; 

     </script> 

    </head> 

    <body> 
    <div class="content">""") 

     #python code: 
     query = Users.all() 
     e = query.fetch(10) 
     self.response.out.write("""<ol>""") 
     for item in e: 
      self.response.out.write(""" 
      <div id="topten" class="title" style="display:none"> 

       <li>%s (<span class="small">%s</span>)</li> 

      </div> 
      <hr><br />""" 
      % tuple([item.choice, item.owner])) 
     self.response.out.write("""</ol>""") 
     self.response.out.write(""" 
    </div> 

    </body> 
</html>""") 

답변

1

선택자가 정의되지 않았으며 "undefined"문자열 리터럴이 아닌 것이 확실합니까?

this fiddle i made

+0

당신이 옳습니다. 나는 localStorage를 다시 한번 지웠고 이제는'chooser : null'을 얻었고 다른 것은 트리거되었습니다. – Zeynel

+1

다행이었습니다. 미래를 위해서, JavaScript와 같은 약한 타입의 언어로 작업 할 때는 항상'==='를 사용하는 것이 좋습니다. 로컬 스토리지에서 "정의되지 않은"해야 할 일이 있습니다 어떤 – Ben

+0

어떤 제안? 감사. – Zeynel

관련 문제