2013-12-23 40 views
1

我正在嘗試創建一個電梯聊天服務器。我已經從Lift的主網站上鍊接到的Lift書中取得了一切。在運行它時,我無法提交消息,因爲liftAjax未定義,並導致出現在我的Chrome控制檯中的錯誤。未定義的未引用的參考錯誤電梯ajax

糾正我,如果我錯了,但不應該提起產生liftAjax東西啓動網站?我有一種感覺,我可以從某種渠道自己導入liftAjax,它會起作用,但我不覺得我應該這樣做。

這是我的index.html文件。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title>Home</title></head> 
<body class="lift:content_id=main"> 
    <div id="main" class="lift:surround?with=default;at=content"> 
     <!-- the behavior of the div --> 
     <div class="lift:comet?type=Chat">Some chat messages 
      <ul> 
       <li>A message</li> 
       <li class="clearable">Another message</li> 
       <li class="clearable">A third message</li> 
      </ul> 
     </div> 
     <div> 
      <form class="lift:form.ajax"> 
       <input class="lift:ChatIn" id="chat_in" /> 
       <input type="submit" value="Say Something" /> 
      </form> 
     </div> 
    </div> 
    </body> 
</html> 

這是產生什麼:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<div id="main" xmlns="http://www.w3.org/1999/xhtml"> 
    <!-- the behavior of the div --> 
    <div id="F156429460218VSI1GX_outer" style="display: inline"> 
     <div id="F156429460218VSI1GX" style="display: inline"> 
      <div xmlns="http://www.w3.org/1999/xhtml">Some chat messages 
       <ul> 
        <li></li> 
       </ul> 
     </div><script type="text/javascript"> 
// <![CDATA[ 
/* JSON Func comet $$ F156429460221QEXVXK */function F156429460221QEXVXK(obj) {liftAjax.lift_ajaxHandler('F156429460221QEXVXK='+ encodeURIComponent(JSON.stringify(obj)), null,null);} 
// ]]> 
</script></div><script type="text/javascript"> 
// <![CDATA[ 
var destroy_F156429460218VSI1GX = function() {} 
// ]]> 
</script></div> 

     <div> 
     <form id="F156429460223BHVYIM" action="javascript://" onsubmit="liftAjax.lift_ajaxHandler(jQuery('#'+&quot;F156429460223BHVYIM&quot;).serialize(), null, null, &quot;javascript&quot;);return false;"> 

注:發生在上面一行

<input name="F1564294602245ECYAU" id="chat_in" xmlns="http://www.w3.org/1999/xhtml" /> 
<input value="Say Something" type="submit" xmlns="http://www.w3.org/1999/xhtml" /> 
</form> 
</div> 
</div> 

錯誤,我只是真的不知道這可能是導致此。我剛剛開始學習Lift,所以我不太瞭解。我錯過了什麼嗎?

如果您需要更多信息,比如build.sbt或其他文件,請讓我知道,我也可以發佈它們。

+0

對不起,如果我不知道電梯,但爲什麼這裏有* scala *標籤? – skiwi

+0

真的不清楚你遇到了什麼問題。你期望發生什麼?你覺得HTML應該是什麼樣子?另外,您是否收到任何特定的錯誤消息? – jcern

+0

@skiwi,Lift是一個基於Scala的Web框架,可能是爲什麼它被標記爲「scala」。雖然他沒有在問題中發佈任何代碼,但我想答案最終可能會用到它。 – jcern

回答

0

您不需要手動包含liftAjax函數,但您需要手動包含jquery。升降機不會自動爲其添加引用,因爲它不知道要使用的版本,縮小級別或位置。嘗試添加:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 

到您的模板的頭部分。

1

在我的情況下,我失蹤body部分,似乎自動來源liftAjax

<body class="lift:content_id=main"> 
    <div id="main" class="lift:surround?with=default;at=content"> 
      ...... 
    </div> 
</body> 

但是,在另一種情況下,採購jquery手動將與JQuery模塊中注入Boot.scala工作。

<script id="jquery" src="/classpath/jquery.js" type="text/javascript"></script>