2

我有两个由我的同事编写的脚本,用于使用来自 facebook graph-api 的信息自动填写表单。我想弄清楚哪些以更有效的方式编码?

这是第一个。 http://jsfiddle.net/TcGGZ/30/

$('#account_get').click(function(){
    $.getJSON('http://graph.facebook.com/'+$('#facebook').val(), function(fd) {
        $('#id').val(fd.id);
        $('#name').val(fd.name);
        $('#first_name').val(fd.first_name);
        $('#last_name').val(fd.last_name);
        $('#link').val(fd.link);
        $('#username').val(fd.username);
        $('#gender').val(fd.gender);
        $('#locale').val(fd.locale);
    });
});​

这是我要决定的第二个。 http://jsfiddle.net/VuY2b/46/

var facebook_account = '';

function fillForm() {
    facebook_account = $('#facebook').val();

    $.getJSON('http://graph.facebook.com/' + facebook_account, function(data) {
        var facebook_data = data;
        console.log(facebook_data);
        var inputs = $('form > input');
        for (var key in facebook_data) {
            for (var l = 0; l < inputs.length; l++) {
                if (inputs[l].getAttribute('name') === key) {
                    inputs[l].value = facebook_data[key];
                }
            }
        }
    });

}



var x = document.getElementById('account_get');
x.addEventListener("click", fillForm, false);​
4

1 回答 1

0

第一个简单,第二个复杂。

根据我的说法,第二种方法很有效,因为如果您的网站表单属性不同,第二种方法会检查正确的匹配属性并正确填写。所以我更喜欢第二种。

于 2012-11-14T18:34:21.710 回答