$(#divid).load(pagename.jsp)在liferay 6.1中不起作用

时间:2013-01-02 06:27:28

标签: javascript jquery liferay liferay-ide

<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正常工作......我能够更改innerHTML的分区和警报框也来了..但是无法在div中加载页面。相同的代码在简单的动态Web项目中正常工作。 任何身体都可以帮助我...

3 个答案:

答案 0 :(得分:3)

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

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

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

此外,当您在门户环境中时,您可能希望将<portlet:namespace/>附加/前置到您提供的ID中 - 否则当您的portlet被添加到页面时,您将有重复的ID (或其他人选择使用相同的ID)

答案 1 :(得分:0)

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

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

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

也尝试直接从浏览器调用second.jsp并查看你得到的内容

答案 2 :(得分:0)

也可以使用.on()方法代替.click()方法。这将使您免于DOM膨胀

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

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

});