在新窗口中打开链接,但就像在原始窗口中打开一样

时间:2013-05-08 06:53:17

标签: php jquery ajax

我有一个index.php,它将page.php加载到#result div中。 Page.php又有自己的链接,我有它,所以当你点击其中一个链接时,它会将相应的页面加载到SAME #result div中。同样,加载的页面可能有自己的链接,我想继续将内容加载到同一个div中。代码如下:

function loadPage(url){
       $("#wrapper").load(url, function(){
            $("#wrapper").find($('a')).each(function(){
                 $(this).on('click', function(e){
                    loadPage($(this).attr('href'));
                    e.preventDefault();
                 });
            });
        });
    }

假设page.php有一个指向page2.php的链接。

当我在新窗口中打开指向page2.php的链接时,它将以page2.php打开。如果我直接在我的浏览器中输入page2.php的URL。我希望它以index.php的形式打开,但是将page2.php加载到#result div中(通常在原始窗口中单击链接的副本)。

你是怎么做到的?我已经尝试了很多东西,包括设置会话变量和传递给loadPage,但似乎没有任何工作。

3 个答案:

答案 0 :(得分:1)

你想通过ajax请求改革你的结果div吗?如果是,那么使用

jQuery.ajax(url,[settings]) ;

答案 1 :(得分:1)

事实证明我在设置会话变量!!!的情况下走在了正确的轨道上。

在index.php中,刚开始会话后,您必须检查是否已设置会话变量。如果没有,请将其设置为page.php,即

 if(!isset($_SESSION['id'])) 
     $_SESSION['id'] = "page.php";

然后在page2.php中,在设置会话后立即将会话变量设置为page2.php。即。

 $_SESSION['id'] = "page2.php";

在重定向到index.php之前,你必须在login.php中设置它。

如果您将“id”会话变量设置到正确位置的右侧页面,则应该获得所需的行为。

答案 2 :(得分:0)

试试这个:

function loadPage(url){
   $.get(url, function(data){
       $("#wrapper").empty().append(data);
       $("#wrapper body").find('a').each(function(){
         $(this).click(function(e){
           e.preventDefault();
           loadPage( $(this).attr('href') );
         });
       });
   });
}