2011-11-21 13 views
0

我在我的Google App Engine應用程序中有Comments句柄來顯示評論。如果用戶(在此定義爲「選擇器」)不在localStorage中,我想停止加載頁面。如何在onload事件中觸發else子句?

我得到前2個警報:"load event"chooser: "undefined"。由於「選擇器」未定義,我希望else子句可以觸發,但是我沒有在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

有什麼建議可能會發生在localStorage中有「未定義」?謝謝。 – Zeynel