gpt4 book ai didi

javascript - 如何阻止我的 Facebook 共享窗口被弹出窗口阻止程序阻止?

转载 作者:行者123 更新时间:2023-11-29 16:47:34 24 4
gpt4 key购买 nike

当调用 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 - 如何阻止我的 Facebook 共享窗口被弹出窗口阻止程序阻止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39768800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com