Javascript 如何阻止我的Facebook共享窗口被弹出窗口拦截器阻止?
当一个函数被称为onClick of Facebook share按钮时,我的Facebook共享窗口就会出现 问题是Facebook窗口试图出现,但被弹出窗口拦截器阻止 这是我第一次创建共享窗口。是否有一个简单的解决方案来绕过弹出窗口阻止程序 以下是触发该功能的按钮:Javascript 如何阻止我的Facebook共享窗口被弹出窗口拦截器阻止?,javascript,facebook,facebook-graph-api,facebook-javascript-sdk,Javascript,Facebook,Facebook Graph Api,Facebook Javascript Sdk,当一个函数被称为onClick of Facebook share按钮时,我的Facebook共享窗口就会出现 问题是Facebook窗口试图出现,但被弹出窗口拦截器阻止 这是我第一次创建共享窗口。是否有一个简单的解决方案来绕过弹出窗口阻止程序 以下是触发该功能的按钮: <button class="share-now" onclick="fb_callout();"> 下面是调用的函数: <script> function fb_callout() {
<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>
函数fb_callout(){
(职能(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);
}(文件);
}
window.fbAsyninit=函数(){
//初始化FBJSSDK
FB.init({
appId:'16228025423002',//应用程序仪表板中的应用程序ID
xfbml:是的,
版本:“v2.5”,
状态:正确
});
//附加的初始化代码(如添加事件侦听器)如下所示
FB.ui(
{
方法:“提要”,
href:'http://www.example.com',
名称:“示例”,
链接:'http://www.example.com',
图片:'http://image.png',
标题:"标题",,
描述:'文字在这里'
},
功能(响应){
if(应答和应答后id){
警报(“发布帖子”);
}否则{
警报(“未发布帖子”);
}
}
);
};
现在,您尝试打开的弹出窗口不是用户交互,而是异步回调函数。当然,弹出窗口拦截器会检测到并阻止弹出窗口(有很好的理由)。你需要做两件事:
- 在页面加载时加载JSSDK,而不是在用户交互时加载
- 直接在用户交互时调用
。它应该是FB.ui
功能中的唯一内容fb\u callout