1

我有一个 Apache 写,除了在使用“标签”的页面上之外,它在任何地方都可以使用。

出于某种原因,选项卡正在加载,就好像它们是通过 AJAX 加载的完整页面一样(通过 index.php 作为重写指示运行 - 但它不应该重写我认为的 # 锚链接......)

有没有办法阻止它这样做?这很奇怪,因为它不仅将 # 链接视为真正的 URL,而且还在 <html> via inline 样式中添加了 -33,000px ,所以这就是我在检查工具中禁用它之后的样子。否则它只是黑色而且非常长。

在此处输入图像描述

我应该补充一点,这不是问题,直到我添加<base href="/folder/">以解决它没有正确重写子目录的问题。之前,它仍然进行了重写并正确呈现了页面。

更新 这绝对是<base>和jQueryUI 的.tabs冲突。当我删除重写并使用长 URL 时,它会不断克隆它们。重写使它免于重写过去 12 次左右。

4

3 回答 3

1

感谢这个错误报告,我找到了解决方案。

$.fn.__tabs = $.fn.tabs;
$.fn.tabs = function (a, b, c, d, e, f) {
    var base = location.href.replace(/#.*$/, '');
    $('ul>li>a[href^="#"]', this).each(function () {
        var href = $(this).attr('href');
        $(this).attr('href', base + href);
    });
    $(this).__tabs(a, b, c, d, e, f);
};

    //$('#the-object').tabs();

显然在 1.8 时它起作用了,在 1.9 时它变得循环了。这会将基本 href 添加到链接中,从而解决问题。

于 2013-04-26T17:16:25.977 回答
1

mod_rewrite还会查看片段标识符,但您可以告诉它不要在RewriteCond.

以下仅允许不以片段标识符结尾的 URI。

RewriteCond %{REQUEST_URI} !(#(.*))$
于 2013-04-21T17:01:50.440 回答
0

显然这部分是由于 jQueryUI 选项卡中的错误

错误报告

我不确定我是否可以解决这个问题,但它在 IE 中工作,而不是在 Chrome/Firefox 中......我想我会尝试一个插件。

于 2013-04-21T17:59:22.033 回答