Php 将带有链接的html加载到div中?

Php 将带有链接的html加载到div中?,php,jquery,html,iframe,hyperlink,Php,Jquery,Html,Iframe,Hyperlink,以下是场景: 我有3个文件: index.php: <html><head> <script type="text/javascript" src="../jquery.js"></script> <script> $(document).ready(function(){ $("#local").load("FarLinkLoader/farlink.php"); }); </script>

以下是场景:

我有3个文件:

index.php

<html><head>
<script type="text/javascript" src="../jquery.js"></script>
<script>
    $(document).ready(function(){
        $("#local").load("FarLinkLoader/farlink.php");
    });
</script>
</head><body>
<div id='local'></div>
</body></html>
<div>
<a href="farfar/farfarlink.php">farfarlink</a>
</div>
text or whatever
问题是当
farlink.php
加载到
index.php
时,
farlink.php
中的链接无效,链接的引用来自
index.php
,而不是来自前一个文件

这有什么关系吗iframe擅长于此,实际上是浏览器中的“浏览器”,因为通过iframe加载的页面的邻居文件/目录是从那里引用的,而不是从前一个页面中的页面加载的,就像ajax请求时一样

替换此所需功能的各种可能性是什么


谢谢

我想您可以添加一个小jQuery来自动更新加载页面中的所有URL(未测试):


您还可以在文档标题中添加一个标记,但这会影响整个文档中的所有相对链接,可能并不可取。

我知道您说过“绝对URL不是解决方案”,但如果您的所有文件都位于同一服务器上,您可以使用URL,这些URL对于指定的域不是相对的,也不是绝对的,但是对于服务器的根来说是绝对的,因此无论它们包含在哪个页面中,都会引用同一个文件。只需使用前面的“/”字符和从根目录到每个文件的完整路径。

所以我应该使用PHP中的$\u服务器生成它?我不了解PHP,也不知道答案,但我只是认为这是一种在/FarLinkLoader/farlink.PHP文件中编写路径的方法
$(document).ready(function(){
    $('#local').load('FarLinkLoader/farlink.php', function() {
        $('#local').find('a').each(function() {
            $(this).attr('href', function(i,val) {
                if (val.substr(0,1)!=='/' && val.substr(0,7)!=='http://') {
                    return 'FarLinkLoader/'+val;
                } else {
                    return val;
                };
            });
        });
    });
});