jquery - fancybox - 以'/'开头的URL的语法错误

时间:2012-05-07 14:08:32

标签: javascript jquery jquery-plugins fancybox

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

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

如果我删除了斜线,它就可以了。显然,我得到了404,但fancybox打开了。

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

谢谢。

3 个答案:

答案 0 :(得分:1)

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

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

我在" href"中使用绝对路径解决了这个问题。属性。 另一个解决方案,你可以尝试" href" Fancybox的选项。 (document

我试过它,发现使用$(this).attr('href')可以正常工作, 甚至路径也是相对的,以斜线开头。

我试过的代码:

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

2012年7月3日更新:

我发现上面尝试的代码并不总是有用,并且进行了一些演示here。 使用"类型"似乎没有错误。选项。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

这是一个较旧的主题,但在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'
});