在 Facebook Feed Dialog(js 版本)中使用来自外部 js 脚本的 javascript var

Use a javascript var from external js script in a Facebook Feed Dialog (js version)

本文关键字:js 外部 脚本 var javascript Dialog Feed Facebook 版本      更新时间:2023-09-26

我希望这是可能的。我有一个HTML文件,它使用以下方法加载js文件: <script src="js.js"></script>在这个脚本中有一个 var:var score = 0;当人们获得积分时,这个变量会发生变化。

现在,在同一 HTML 文件中,我添加了以下对话框脚本(另请参阅 https://developers.facebook.com/docs/reference/dialogs/feed/以获取更多信息):

FB.init({appId: "xxxxxxxxxxxxx", status: true, cookie: true});
function postToFeed() {
    // calling the API ...
var obj = {
        method: 'feed',
    link: 'https://developers.facebook.com/docs/reference/dialogs/',
    picture: '',
    name: 'I just got a new high score of [xx] points!',
    caption: 'Think you can do better?',
    description: 'Join me.'
};
function callback(response) {
    document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
}
FB.ui(obj, callback);
}

此脚本有效,并显示对话框。现在在第[xx] points部分,我想展示人们获得的积分。

我尝试了以下方法:

使用 js.js 文件中的 $('#score').val(document.getElementById('sc').innerHTML);将 var 结果推送到输入字段<input type="text" id="score" name="score" value="0" readonly />,结果分数显示在输入字段中。

然后在[xx]部分尝试:' + document.getElementById('score').innerHTML + ',但这不起作用。也许这种方法是错误的,有更好的方法,但是如何在对话框中显示分数?

亲切问候

莫里斯

据我从您的描述中可以看出score是一个全局变量。 您可以执行以下操作:

var obj = {
    method: 'feed',
    link: 'https://developers.facebook.com/docs/reference/dialogs/',
    picture: '',
    name: 'I just got a new high score of ['+ score +'] points!',
    caption: 'Think you can do better?',
    description: 'Join me.'
};