我正在使用 Facebook SDK,由于安全问题,它现在通过弹出窗口工作。
因此,我有一个处理 Facebook 的按钮 [FacebookButton],它是隐藏的,并且有一个测试弹出窗口拦截程序的按钮 [PopupTester]。
我的代码如下:
当点击 [PopupTester] 按钮时,如果弹出窗口可以使用:关闭它,隐藏此按钮并显示 [FacebookButton]。
或者
当点击 [PopupTester] 按钮时,如果弹出窗口无法使用,则显示对话框以促使更改弹出窗口设置,保持 [FacebookButton] 隐藏,将此按钮值更改为 [重试]。
function testPopupBlocker() {
var windowName = 'userConsole';
var popUp = window.open('http://www.whirlocal.com', windowName, 'width=200, height=200, left=24, top=24, scrollbars, resizable');
if (popUp == null || typeof(popUp)=='undefined') {
var weGood = "nope";
alert('Please disable your pop-up blocker and click the link to test again.');
}
else {
var weGood = "yup";
popUp.close();
}
这很好用,但是这个按钮总是会创建一个弹出窗口,但Facebook的按钮仍然被阻止了!
除了“window.open”之外,是否有其他方法可以创建弹出窗口?另一种更可能被阻止的方法吗?
编辑:
这是我的按钮代码
<input type="button" class="genButton testPopupButton" name="Test Popup Blocker" title="Test Popup Blocker" value="Test Popup Blocker" onclick="testPopupBlocker()" style="cursor:pointer;" />
<input type="button" class="genButton needsPopups facebookButton" name="AdvocateOnFacebook" title="Recommend <?php echo genesis_get_option('organization','child-settings');?> on Facebook" value="Recommend us on Facebook!" onclick="advocateToFriends()" style="cursor:pointer; display:none;" />