【问题标题】:jquery - fancybox - Syntax error with URLs starting with '/'jquery - fancybox - 以“/”开头的 URL 的语法错误
【发布时间】:2012-05-07 14:08:31
【问题描述】:

我正在使用 Fancybox 2.0.6 和 jQuery 1.7.2,当我使用以斜杠开头的 href url 时,出现以下错误:

Syntax error, unrecognized expression: /path/to/load

如果我删除斜线,它会起作用。显然,我得到了一个 404,但 fancybox 会打开。

是的,我确实需要网址以斜杠开头。

谢谢。

【问题讨论】:

  • 能否包含一些触发错误的JS代码?

标签: javascript jquery jquery-plugins fancybox


【解决方案1】:

我在 jQuery 1.7.1 和 Fancybox 2.0.5 中遇到了类似的问题。

不仅是开头的斜线, 在我的测试中,斜线前的字母“a”或一个或多个点也会导致同样的问题。 似乎输入其他字母或更多字母“a”可以正常工作。

我通过在“href”属性中使用绝对路径来解决它。 另一种解决方案,您可以尝试 Fancybox 的“href”选项。 (document)

我已经尝试过了,发现使用$(this).attr('href') 可以正常工作, 甚至路径都是相对的,并且以斜杠开头。

我试过的代码:

$('.fancybox').fancybox({
    href: $(this).attr('href')
});

2012 年 7 月 3 日更新:

我发现上面我尝试的代码并不总是有效,并做了一些演示here。 使用“类型”选项时似乎没有错误。

【讨论】:

    【解决方案2】:

    您必须将此属性添加到您的链接:data-fancybox-type="iframe"

    【讨论】:

      【解决方案3】:

      这是一个较旧的线程,但在 Google 上仍然更高。您可以查看在 Github 上提交的 Fancybox 错误:

      https://github.com/fancyapps/fancyBox/issues/290

      注意!如果 fancyBox 将无法获取内容类型,错误信息 将显示(这与以前的版本不同,其中 'ajax' 被用作默认类型)。

      这意味着您需要指定请求的类型('ajax'、'iframe'、'inline'):

      例如:

      $('.fancybox').fancybox({
           type: 'ajax'
      }); 
      

      $('.fancybox').fancybox({
           type: $.support.ajax? 'ajax':'iframe'
      }); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-14
        • 2020-10-31
        相关资源
        最近更新 更多