使用Jquery修复断开的链接

这可能是一个愚蠢的问题,但我正在使用jquery.load()和Jquery UI的标签..我在其中加载的页面中有相关内部的详细链接,如

link 

所以说我的主页是myserver.com/rootdir/DefaultTabs.asp所以如果我加载的页面在myserver.com/rootdir/dir1/page1.html中,那么当我将它加载到选项卡时,它是一个看起来很破碎的链接比如myserver.com/rootdir/page1.html

那么我如何替换页面上的所有链接以显示正确的目录,但如果链接已经是绝对链接,则不替换链接。 (例如,在每个页面的底部,我都有myserver.com/rootdir/prefs/EditTab.asp我还想工作)

非常感谢。 我几乎没有冒险进入jquery而且非常落伍。 几个小时以来我一直在苦苦挣扎,一直在尝试,在divs / classes中搜索等等。

我知道我错过了jquery链接/查找的概念,但……

也许答案是将到要加载到选项卡中的文档的

我希望您可以使用JQuery或类似的东西在浏览器端执行此操作。 但如果没有,它应该是对呈现页面的服务器端JSP(或其他)的一个小改动。

让您的链接绝对:

 link 

代替:

 link 

类似的东西应该有所帮助。 它使用正则表达式,您可以精确地满足您的需求。 我没有对此进行测试,但正则表达式旨在检测url不以绝对路径指示符开头的情况。

 $('a', context).foreach(function() { var link = $(this); var linkText = $(this).attr('href'); if (null == linkText.match(/^([\\\/])|([^\\\/]*\:)/)) { // It's not an absolute url, so fix it. linkText = '\\root\\path\\here\\' + linkText; link.attr('href', linkText); } }); 

我遇到了这个问题,我发现让事情发挥作用的唯一方法就是永远让链接变得绝对……希望别人有更好的方法。

不确定这是否有用,但你考虑过动态javascript文件吗?

这样你就可以使用PHP并获得$ _SERVER变量……

  

将上面的内容放在名为“ dynamic-javascript.js.php ”的文件的顶部。 继续,在你的下面添加你的jquery代码,当需要PATH的时候回显到PHP。

要运行/包含该文件,只需将其添加到HTML文档的顶部,就像通常使用.js文件一样。

在黑暗中拍摄,我知道……但是当在javascript文件中处理URL和PATHS时,它让我脱离了一些泡菜。

祝好运!

汤姆