2013-12-23 9 views
1

리프트 채팅 서버를 만들려고합니다. 나는 Lift의 주요 웹 사이트에서 링크 된 Lift 책에서 모든 것을 바로 잡았습니다. 그것을 실행하면 liftAjax가 정의되어 있지 않아 내 크롬 콘솔에 나타나는 오류가 발생하므로 메시지를 제출할 수 없습니다.잡히지 않은 참조 오류 리프트 아약스가 정의되지 않았습니다.

내가 틀렸다면 수정하십시오. 그러나 웹 사이트를 시작할 때 liftAjax 물건을 들어 올리면 안됩니까? 나는 어떤 소스에서 liftAjax를 직접 가져올 수 있다는 느낌이 들지만 작동 할 것이라고 생각하지는 않습니다.

이것은 내 index.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;"> 

참고 :

<!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> 

이 생성되는 것입니다 오류가 난이 원인이 될 수 있는지 정말 모르겠어요 위의 줄

<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> 

에 발생합니다. 나는 리프트를 배우기 시작 했으므로 많이 알지 못합니다. 내가 놓친 게 있니?

build.sbt 또는 기타 파일과 같은 추가 정보가 필요하면 알려 주시면 게시 할 수도 있습니다.

+0

리프트를 모르겠다면 왜 죄송합니다. 왜 여기에 * scala * 태그가 있습니까? – skiwi

+0

겪고있는 문제가 실제로 명확하지 않습니다. 너는 무엇을 기대하고 있니? HTML이 어떻게 보일 것 같니? 또한 특정 오류 메시지가 나타 났습니까? – jcern

+0

@skiwi, Lift는 스칼라 기반 웹 프레임 워크로, 아마도 'scala'태그가 붙은 이유 일 것입니다. 그는 질문에 어떤 코드도 게시하지 않았지만, 그 대답이 그것을 활용할 수 있다고 생각합니다. – jcern

답변

0

liftAjax 함수를 수동으로 포함 할 필요는 없지만 수동으로 jquery를 포함해야합니다. Lift는 사용하려는 버전, 축소 레벨 또는 위치를 알지 못하므로 참조를 자동으로 주입하지 않습니다. 다음을 추가하십시오 :

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

서식 파일의 머리 부분.

1

필자의 경우 body 부분이 자동으로 소스 liftAjax 인 것처럼 보이지 않았다. jquery 소싱 다른 경우

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

하지만, 수동으로 Boot.scala 주입 JQuery 모듈과 함께 작동합니다.

<script id="jquery" src="/classpath/jquery.js" type="text/javascript"></script> 
관련 문제