[英]Redirecting On 'Like' in Facebook Application (IE7)
我目前正在使用新的时间轴布局为客户端构建一个Facebook应用程序,这意味着没有登录页面等。无论如何,有一个我们希望用户访问的应用程序具有令人讨厌的“ Fan Gates”之一,您必须“喜欢”页面,然后才能查看完整的应用程序。 决定我们在页面内有一个“赞”按钮,这意味着我需要在他们单击“赞”以显示正确的应用程序后手动进行刷新/重定向。
我正在使用此代码来实现此目的:
<div id="fb-root"></div>
<script>
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=xxxx";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<script>
window.fbAsyncInit = function() {
// Javascript SDK Settings
FB.init({
appId : 'xxx',
status : true, // check login status
channelUrl : 'https://www.xxx.com/assets/apps/channel.html', // Channel File
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Automatically increase height of our canvas.
FB.Canvas.setAutoGrow();
// When they click the like button within our app refresh the page and take them to our app.
FB.Event.subscribe('edge.create', function(href, widget) {
window.top.location = '//www.facebook.com/xxx/app_xxx';
});
};
</script>
<div id="like"><div class="fb-like" data-href="xxx" data-send="false" data-layout="button_count" data-width="100" data-show-faces="false"></div></div>
<img src="/assets/apps/lyc/img/nolike.jpg" />
要快速遍历它,需要为like按钮和我需要的功能添加javascript sdk。 然后,我设置SDK设置,自动增加iframe的长度,并最终获得我的点击事件功能,如果单击该按钮,我会将其带到应用程序页面。
除IE7之外,此方法均可在其他任何地方正常工作。 当您在IE7中单击“喜欢”时,它只是坐在那里而不运行重定向。 我看不到任何错误。 正如我所说,所有其他浏览器都执行重定向。
我已经坚持了很长时间,所以任何帮助将不胜感激。
干杯
我怀疑IE7阻止了您的JavaScript重定向,因为它没有考虑将iFrame内部的按钮(“赞”按钮)视为有效的用户互动。 IOW,这是Web浏览器的重定向阻止机制。 为了确认这是真的,请更改以下代码:
FB.Event.subscribe('edge.create', function(href, widget) {
alert('You clicked like!');
window.top.location = '//www.facebook.com/xxx/app_xxx';
});
警报显示吗? 如果是,则确认已捕获该事件,但浏览器阻止了重定向。 一个好的解决方法是,除了尝试重定向以外,还显示“继续”按钮,以防万一重定向在某些浏览器中不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.