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 在 Eclipse 中工作。JQuery 工作正常...我能够更改部门的 innerHTML 和警告框也来了..但无法在 div 内加载页面。相同的代码在简单的动态 web 项目中正常工作。任何机构都可以帮助我吗?

4

3 回答 3

3

确保您的 second.jsp 可用于您的 webbrowser:您处于 portlet 环境中,因此您不能假设它./second.jsp指的是与 jsp 所在的目录相同的目录,该目录为您粘贴在问题中的内容提供服务。很可能您需要一条不同的路径——如果您的 jsp 在 中/WEB-INF,您甚至需要将它移动到其他地方,以便可以动态请求它。

此外,如果 second.jsp 需要访问门户会话,您最好对您的 portlet 使用资源请求。<portlet:resourceURL/>将成为你的朋友。

正如charlietfl 在对您的问题的评论中所建议的那样,最好的方法是在您的浏览器中使用HTTP 级别的输出(例如firebug)并查看实际发送的请求类型。

此外,当您处于门户环境中时,您可能希望附加/预先添加<portlet:namespace/>到您提供的 id - 否则当您的 portlet 被添加到页面两次(或其他人选择使用相同的身份证)

于 2013-01-02T08:14:47.700 回答
0

您没有指定加载后要调用的任何回调函数。

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

确保路径second.jsp 正确并且正确输出 html

也尝试直接从浏览器调用 second.jsp 看看你得到了什么

于 2013-01-02T06:29:30.797 回答
0

也使用 .on() 方法而不是 .click() 方法。这将使您免于 DOM 膨胀

$(document).ready(function() { $('body').on('click','#gt',function() {

        $("#internal").load('second.jsp', function(){
              alert("loaded");
        });
     });

});

于 2013-01-02T06:48:45.787 回答