我如何阻止我的Facebook共享窗口被弹出式拦截器阻止
How do I stop my Facebook share window from being blocked by popup-blocker?
当调用Facebook共享按钮的onClick函数时,我的Facebook共享窗口出现。
问题是Facebook窗口试图出现,但被弹出式拦截器阻止。
这是我第一次创建共享窗口。是否有一个简单的解决方案来绕过弹出窗口拦截器?
下面是触发该功能的按钮:
<button class="share-now" onclick="fb_callout();">
这里是被调用的函数:
<script>
function fb_callout() {
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
}
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : '162280254223002', // App ID from the App Dashboard
xfbml : true,
version : 'v2.5',
status : true
});
// Additional initialization code such as adding Event Listeners goes here
FB.ui(
{
method: 'feed',
href: 'http://www.example.com',
name: 'Example',
link: 'http://www.example.com',
picture: 'http://image.png',
caption: 'Caption',
description: 'words go here'
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
);
};
</script>
现在你正在尝试打开一个弹出不是在用户交互,但在一个异步回调函数。当然,弹出窗口拦截器检测到这一点,并阻止弹出窗口(有一个很好的理由)。您需要做两件事:
- 在页面加载时加载JS SDK,而不是在用户交互时加载。
- 用户交互时直接调用
FB.ui
。它应该是fb_callout
函数中唯一的东西。
相关文章:
- 在元素悬停上显示带有javascript的弹出式网站
- Chrome扩展弹出式安装
- 普通(弹出式)Chrome 扩展程序与在开发者工具中添加标签页的扩展程序之间的区别
- 仅加载弹出式javascript
- 弹出警报窗口问题
- Javascript弹出式Google Chrome扩展
- 需要帮助添加弹出信息窗口到传单地图上的多边形
- jquery弹出注册窗口
- 使用 Facebook PHP SDK 执行弹出式登录窗口
- 无法将鼠标坐标从content_script传递到弹出式窗口(Chrome 扩展程序)
- 在弹出式原因窗口中显示PDF.很接近事实
- 剑道网格-如何用JavaScript打开弹出式编辑窗口
- 使一个弹出式(非模态)浏览器窗口即使在不活动时也保持可见
- 我如何阻止我的Facebook共享窗口被弹出式拦截器阻止
- IE8将弹出式浏览器窗口移至后台
- 模态窗口(弹出式)和背景
- 无法在弹出式模式窗口中显示SQL结果
- “refs"模式弹出式内容给出'undefined'一旦弹出窗口关闭
- 从弹出式窗口中删除默认边框
- Chrome 扩展程序:弹出式窗口.html会在新标签页中关闭并打开响应