gpt4 book ai didi

javascript - Facebook Canvas : Uncaught TypeError: Cannot call method 'sort' of undefined

转载 作者:行者123 更新时间:2023-11-28 08:39:29 25 4
gpt4 key购买 nike

我有一个奇怪的问题。我的多好友选择器的 javascript 代码在我的本地主机上运行良好,但是当我将其加载到我的 Facebook 应用程序的 Canvas 中时,它会抛出错误

Uncaught TypeError: Cannot call method 'sort' of undefined

在 all.js 的第 81 行当我在本地主机上使用 chrome 开发者工具进行调试时,我可以看到响应对象调用排序方法,但在 facebook 应用程序中,响应对象是错误对象。我的javascript有什么问题吗?或者在 facebook 上的 iframe 中加载时需要执行任何特定任务?

我已按以下顺序加载库:

    <script src="/static/interface/js/jquery.min.js"></script> 
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script src="/static/interface/js/bootstrap.min.js"></script>
<script src="/static/interface/js/jquery.facebook.multifriend.select.js"></script>
<link rel="stylesheet" href="/static/interface/css/jquery.facebook.multifriend.select.css"/>

这是 JavaScript 代码

<script> 


FB.init({appId: '460948667348013', cookie: true});

FB.getLoginStatus(function(response) {
if (response.session) {
init();
} else {
// no user session available, someone you dont know
}
});

function init() {
FB.api('/me', function(response) {
$("#username").html("<img src='https://graph.facebook.com/" + response.id + "/picture'/><div>" + response.name + "</div>");



$("#jfmfs-container").jfmfs({
max_selected: 15,
max_selected_message: "{0} of {1} selected",
friend_fields: "id,name,last_name",
pre_selected_friends: [1014025367],
exclude_friends: [1211122344, 610526078],
sorter: function(a, b) {
var x = a.last_name.toLowerCase();
var y = b.last_name.toLowerCase();
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
});
$("#jfmfs-container").bind("jfmfs.friendload.finished", function() {
window.console && console.log("finished loading!");
});
$("#jfmfs-container").bind("jfmfs.selection.changed", function(e, data) {
window.console && console.log("changed", data);
});

$("#logged-out-status").hide();
$("#show-friends").show();

});
}



$("#show-friends").live("click", function() {
var friendSelector = $("#jfmfs-container").data('jfmfs');
$("#selected-friends").html(friendSelector.getSelectedIds().join(', '));



});
function sendRequest() {
var friendSelector = $("#jfmfs-container").data('jfmfs');
var sendUIDs = friendSelector.getSelectedIds().join(', ');
// Use FB.ui to send the Request(s)
FB.ui({method: 'apprequests',
to: sendUIDs,
title: 'My Great Invite',
message: 'Check out this Awesome App!',
}, callback);
}

function callback(response) {
// alert('callback called');
var friendSelector = $("#jfmfs-container").data('jfmfs');
var sendUIDs = friendSelector.getSelectedIds().join(',');
var uids = sendUIDs.split(',');
var query = '';
for(i=0;i<uids.length;i++){
if(i==0){
query = query + 'to[' + i + ']=' + uids[i];
}
else{
query = query + '&to[' + i + ']=' + uids[i];
}
}
console.log(query);
if(response){
// alert('successful');
window.location.assign("/?"+ query)
}
else{
alert('failure');
}

}
window.onload = function() {
init();
};

</script>

最佳答案

如果您插入的代码是 all.js,在我看来它应该出现在标签列表的末尾,因此您已经加载了 FB api。

另外,既然你使用的是jquery,为什么还要使用

window.onload

什么时候可以使用

$(document).ready(function() {
init();
});

或者,您确定在导入所有其他脚本时都可以访问它们吗? (我认为是这样,但检查一下也没什么坏处。)

关于javascript - Facebook Canvas : Uncaught TypeError: Cannot call method 'sort' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20673652/

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