-1

嗨,我有 facebook 登录代码,我想在后面的代码上使用 javascript 变量值。我可以通过将它们保存在隐藏字段中来使用,但没有按钮单击,因此页面不是回发。

这是我的代码:

<script>
    // Load the SDK Asynchronously
    (function (d) {
        var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
        if (d.getElementById(id)) { return; }
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        ref.parentNode.insertBefore(js, ref);
    } (document));

    // Init the SDK upon load
    window.fbAsyncInit = function () {
        FB.init({
            appId: '550050651719081', // App ID
            channelUrl: '//' + window.location.hostname + '/channel', // Path to your Channel File
            status: true, // check login status
            cookie: true, // enable cookies to allow the server to access the session
            xfbml: true  // parse XFBML
        });

        // listen for and handle auth.statusChange events
        FB.Event.subscribe('auth.statusChange', function (response) {
            if (response.authResponse) {
                // user has auth'd your app and is logged into Facebook
                var uid = "http://graph.facebook.com/" + response.authResponse.userID + "/picture";
                FB.api('/me', function (me) {
                    **document.getElementById('auth-displayname').innerHTML = me.name;

                    document.getElementById('Email').innerHTML = me.email;
                    document.getElementById('profileImg').src = uid;**
                })

            } 
        });

    }
</script>
<h1>
Facebook Login Authentication Example</h1>
<div id="auth-status">
<div id="auth-loggedout">
<div class="fb-login-button" autologoutlink="true" scope="email,user_checkins">Login with Facebook</div>
</div>
<div id="auth-loggedin" style="display: none">
Name: <b><span id="auth-displayname"></span></b>(<a href="#" id="auth-logoutlink">logout</a>)<br />
Email: <b><span id="Email"></span></b><br />
Profile Image: <img id="profileImg" />
</div>
</div>

代码工作正常,但我也想在后面的代码上获取名称、电子邮件和 uid。

4

2 回答 2

1

您已经以一种或另一种方式将其发送到服务器:要么

1) 直接通过 AJAX 并用MVC-Controller在另一端捕获它

2) 间接地,例如通过服务器控制和回发。

于 2013-07-16T18:57:35.823 回答
0

如果使用 WebForms,您可以使用隐藏字段服务器控件来保存可在回发时访问的值。

如果使用 MVC,您可以向视图模型添加属性并使用Html.HiddenFor帮助程序,这将由 JavaScript 访问。

不过,您可以使用 ajax,从这里开始。这将允许您基本上在幕后对用户进行操作,并允许在获取响应期间和之后进行转换。当然,您必须编写服务器端代码来捕获和处理此请求。

于 2013-07-16T19:21:22.307 回答