以下是该方案:
我有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>
/ FarLinkLoader / farlink.php :
<div>
<a href="farfar/farfarlink.php">farfarlink</a>
</div>
/ FarLinkLoader / farfar / farfarlink.php :
text or whatever
问题是当 farlink.php
加载到 index.php
farlink.php
变为无效,链接的引用来自 index.php
,而不是来自前一个文件。
这周围有吗? iframe 擅长这一点,实际上是浏览器中的“浏览器”,因为通过iframe加载的页面有从那里引用的邻居文件/目录而不是前一页面中的页面是在ajax请求的情况下加载。
更换此所需功能的各种可能性有哪些?
期待的感谢!
答案 0 :(得分:1)
我知道您已经说过“绝对网址不是解决方案”,但是如果您的所有文件都驻留在同一台服务器上,那么您可以使用非相对的网址,并且这些网址不是指定域名的绝对网址绝对到服务器的根目录,因此无论它们包含在哪个页面,它总是引用同一个文件。只需使用前面的“/”字符和从根到每个文件的完整路径。
答案 1 :(得分:-1)
我想您可以添加一个小jQuery来自动更新已加载页面中的所有URL(未经测试):
$(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;
};
});
});
});
});
您可以在文档标题中添加<base href="...">
标记,但这会影响整个文档中的所有相对链接,可能不太理想。