2013-01-02 3 views
0
<script type='text/javascript' src='js/jquery.js'></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#gt").click(function() { 

      $("#internal").load('second.jsp'); //not working.... 
      alert("loaded"); 

     }); 
    }); 
</script> 


    Happy new year................... 
    <a href="#" id="gt"> Click me </a> 

    <p id="para"></p> 

    <div id="internal"> a</div> 

저는 Liferay 6.1과 함께 일하고 있습니다. JQuery 제대로 작동하고 ... div의 innerHTML 변경할 수 오전 및 또한 오는 경고 상자 .. div 수 내부 페이지를로드 할 수 없습니다. 간단한 동적 웹 프로젝트에서도 동일한 코드가 제대로 작동합니다. 어떤 몸이 PLS 도와 줄 수 ...

+3

브라우저 콘솔에서 요청을 검사)와 동일한 ID를 사용하고 반환 (있는 경우) 요청의 상태가 귀하의 경고가로드'같은 의미가되는 데이터보고 선택()'AJAX 비동기되는 것입니다. 요청이 이루어지면 콘솔도 표시됩니다. – charlietfl

+0

사용중인'jquery의 버전 '은 무엇입니까? – Jai

+0

jQuery JavaScript Library v1.8.3. <% @ include file = "second.jsp"%>를 수행 할 수 있습니다. 하지만 자바 스크립트를 사용하여로드하려고하면 오지 않을 것입니다 ... 어떤 오류도 보이지 않습니다. – Shibu

답변

3

것은 당신의 second.jsp이 당신의 웹 브라우저를 사용할 수 있는지 확인하십시오 JSP가 콘텐츠를 제공한다는 점에서 그대로 따라서 당신이 ./second.jsp 같은 디렉토리를 참조 것을 가정 할 수 없다, 당신은 포틀릿 환경에 대부분의 경우 다른 경로가 필요할 것입니다. jsp가 /WEB-INF 인 경우 다른 곳으로 이동해야 할 수도 있습니다. t는 동적으로 요청할 수 있습니다. second.jsp 포털 세션에 대한 액세스를 필요로하는 경우

또한, 당신은 더 나은 포틀릿에 자원 요청을 사용하십시오. <portlet:resourceURL/> 님이 귀하의 친구가됩니다. charlietfl이 질문에 대한 코멘트에서 알 수 있듯이

는 가장 좋은 방법은 브라우저에서 HTTP 레벨 출력 (예를 들어, 개똥 벌레)를 사용하여 실제로 전송되는 요청의 종류를 참고하는 것입니다.

또한

, 당신은 포털 환경에있는 한, 당신은 당신이 제공하고있는 ID에/앞에 추가 <portlet:namespace/>를 추가 할 수 있습니다 - 포틀릿 두 번 페이지에 추가 할 때, 그렇지 않으면 당신은 중복 ID를해야합니다 (또는 사람 다른

+0

하지만 <% @ include file = "second.jsp"%> 같은 것을 포함한다면 완벽하게 작동합니다 ... – Shibu

+0

second.jsp를 포함하고 있다면 제대로 작동한다면 javascript를 사용하여로드하는 동안 왜 안되는 걸까요? – Shibu

+1

@Shibu'<%@include >'와'$ {# divId} .load()'의 차이를 이해합니다. 전자는 정적 인 포함 즉, 컴파일 시간 동안이고 나중에는 서버에 대한 요청이며 서버는 JSP의 __content__를 응답으로 보냅니다. 언급 한 바와 같이'serveResource' 메소드를 호출하고 JSP 대신 JSP의 __content__를 전달하는''을 사용해야합니다. 따라서 '<%@include >'은 JSP를 포함하고'$ {# divId} .load()'는 서버가 보낸 JSP의 __content__을로드합니다. –

0

u는 어떤 콜백 함수를 지정하지 않은는 부하 후에 호출된다.

$('#reinternalult').load('second.jsp', function() { 
    alert('Load was performed.'); 
}); 

second.jsp의 경로가 정확한지 확인하고 제대로 html로도

브라우저에서 second.jsp 직접 전화를하고

+0

하지만 붙여 넣은 코드는 동적 웹 프로젝트에서 작동하고있었습니다. 나는 당신이 준 코드를 시도했다. 그러나 변화는 없다. 두번째 .jsp는 liferay의 division에로드되지 않는다. 당신이 콘솔에서 점점 오류가 무엇인지 성공 – Shibu

+0

콜백 아약스 부하를하지 않습니다 콜백 그가 그 경고는 아약스 다음에 오는 확인 할 수 있습니다 – charlietfl

+0

@charlietfl 이제 선택 사항입니다 ??? –

0

는 또한 CSTE 연구진를 사용하여 무엇을 얻을 볼 시도를 (출력) 메서드 대신 .click() 메서드를 호출합니다. 이 팽창

$ (문서) .ready (함수() { $ ('몸').에 ('#에있다'를 '클릭'기능() {

 $("#internal").load('second.jsp', function(){ 
       alert("loaded"); 
     }); 
    }); 
DOM에서 당신을 저장합니다

});