【发布时间】:2018-07-27 15:09:38
【问题描述】:
我实现了 jQuery Lazy:http://jquery.eisbehr.de/lazy/。一切正常,除了一件事:当我单击 Facebook Connect 按钮时,图像保持空白。在我点击后,他们照常进来。
我注意到,当我点击 Facebook Connect 按钮登录时,地址栏中的 URL 从 [My URL] 变为 [My URL]/#_=_。 Facebook Connect 实现会阻止加载 jQuery Lazy 图像,除非我在此 Facebook 登录后单击周围。我在网上没有发现有人抱怨这个。我认为这将是一个常见且已解决的错误。关于为什么会发生这种情况的任何想法?
更新 1:当我完全不使用 Facebook Connect 访问 [My URL]/#_=_ 时,jQuery Lazy 也不起作用,图像保持空白。发生的情况是,当我四处点击时,在我使用 Facebook 登录后立即附加的 #_=_ 被删除。我看到的是问题在于 Facebook Connect 放在我们 URL 末尾的 #_=_。我看到Facebook Callback appends '#_=_' to Return URL 讨论了这种情况,合乎逻辑的做法是摆脱#_=_,但必须先研究这样做的含义。
更新 2:我在 Facebook Callback appends '#_=_' to Return URL 关注了 Gorgi Rankovski 对 Ryan 解决方案的评论,并在我的 head 标签中使用了这个:
<script type="text/javascript"> var idx=window.location.toString().indexOf("#_=_"); if (idx>0) { window.location = window.location.toString().substring(0, idx); } </script>
现在[My URL]/#_=_ 变成了[My URL]/,这就是我想要的。尽管如此,这并没有解决点击 Facebook Connect 按钮后 jQuery Lazy 图像无法加载的问题。
更新 3:我尝试使用 https://appelsiini.net/projects/lazyload/ 而不是 http://jquery.eisbehr.de/lazy/ 来延迟加载图像,使用两个不同的插件来延迟加载图像,并且在使用 Facebook Connect 时它们都遇到了相同的错误。
【问题讨论】:
-
什么图片?什么网址?请包括相关代码。另外,你试过其他插件吗? (最好没有 jquery)
-
这很可能在某处弄乱了相对路径。在 URL 的末尾附加一个额外的
/#_=_当然也会改变“文件夹深度”。因此,如果之前使用../foo/bar.jpg加载了任何图像,那么现在可能需要额外的../才能再次以相同的方式工作。应该可以通过使用以/开头的路径来修复。 -
@CBroe 请参阅我的问题中的更新 2。我想知道问题是否不仅仅是
#_=_。也许 Facebook Connect 做了更多影响 jQuery Lazy 的事情。 -
您的网址之前是否以斜杠结尾?
-
@CBroe 不,它没有。它是这样结束的:
...stagingarea/San-salvador。使用 Facebook Connect 按钮成功登录后,我的 URL 中有这个:.../stagingarea/San-salvador/#_=_。
标签: javascript jquery facebook-login loadimage jquery-lazyload