我正在开发一个 Facebook 应用程序。如果我像这样运行它,我有以下代码可以正常工作
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $facebook->getAppId(); ?>',
session : <?php echo json_encode($session); ?>,
status : true,
cookie : true,
xfbml : true
);
$('#stgame').click(sendRequest);
function sendRequest() {
document.getElementById('gameSetup').style.display = 'block';
FB.ui({
method: 'apprequests',
message: '<?=$me[name];?> has invited you to a fun game of Towers. To play, just click on accept. Towers is a "3D" tile stacking word game.',
},
function (response) {
if (response && response.request_ids) {
var requests = response.request_ids.join(',');
$.post('handle_requests.php',{uid: <?php echo $uid; ?>, request_ids: requests},function(resp) {
window.location.replace("play.php?" + resp);
});
} else {
document.getElementById('gameSetup').style.display = 'none';
}
});
return false;
}
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
但是,我需要对其进行更改,以便可以将变量发送到“sendRequest”并将触发器更改为内联“onClick”
为此,我在页面上创建了一个链接,如下所示:
<a><img src=/images/start.png onClick=sendRequest('1234556');></a>
并将 sendRequest 函数更改为 sendRequest(variable) 以便它可以获取变量
但是,当我这样做时,每次单击具有 onClick 触发器的按钮时,都会出现错误“找不到变量 sendRequest”
我认为这是因为 onClick 看不到 sendRequest 函数。
所以我的问题是,如何从 onClick 调用该函数。请记住,页面上将有多个按钮需要调用函数,从而为每个按钮赋予不同的变量值。
我当前的代码如下所示:
<a><img src=/images/start.png onClick=sendRequest('123');></a>
<a><img src=/images/start.png onClick=sendRequest('456');></a>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $facebook->getAppId(); ?>',
session : <?php echo json_encode($session); ?>,
status : true,
cookie : true,
xfbml : true
}
);
function sendRequest(opponent) {
document.getElementById('gameSetup').style.display = 'block';
FB.ui({
method: 'apprequests',
to:opponent,
message: '<?=$me[name];?> has invited you to a fun game" tile stacking word game.',
},
function (response) {
if (response && response.request_ids) {
var requests = response.request_ids.join(',');
$.post('handle_requests.php',{uid: <?php echo $uid; ?>, request_ids: requests},function(resp) {
window.location.replace("play.php?" + resp);
});
} else {
document.getElementById('gameSetup').style.display = 'none';
}
});
return false;
}
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
如果有人能告诉我如何调用这个函数,我将不胜感激。据我所知,该函数需要留在窗口内,fbAsyncInit 函数才能实际工作。
任何帮助将不胜感激。