"use strict"; function CLoginPromptManager( strBaseURL, rgOptions ) { // normalize with trailing slash this.m_strBaseURL = strBaseURL + ( strBaseURL.substr(-1) == '/' ? '' : '/' ) + ( this.m_bIsMobile ? 'mobilelogin' : 'login' ) + '/'; this.m_strSiteBaseURL = strBaseURL; // Actual base url, not the login base url above. // read options rgOptions = rgOptions || {}; this.m_bIsMobile = rgOptions.bIsMobile || false; this.m_strMobileClientType = rgOptions.strMobileClientType || ''; this.m_strMobileClientVersion = rgOptions.strMobileClientVersion || ''; this.m_bIsMobileSteamClient = ( this.m_strMobileClientType ? true : false ); this.m_bMobileClientSupportsPostMessage = rgOptions.bMobileClientSupportsPostMessage || false; this.m_$LogonForm = $JFromIDOrElement( rgOptions.elLogonForm || document.forms['logon'] ); this.m_fnOnFailure = rgOptions.fnOnFailure || null; this.m_fnOnSuccess = rgOptions.fnOnSuccess || null; this.m_strRedirectURL = rgOptions.strRedirectURL || (this.m_bIsMobile ? '' : strBaseURL); this.m_strSessionID = rgOptions.strSessionID || null; this.m_strUsernameEntered = null; this.m_strUsernameCanonical = null; if ( rgOptions.gidCaptcha ) this.UpdateCaptcha( rgOptions.gidCaptcha ); else this.RefreshCaptcha(); // check if needed this.m_bLoginInFlight = false; this.m_bInEmailAuthProcess = false; this.m_bInTwoFactorAuthProcess = false; this.m_TwoFactorModal = null; this.m_bEmailAuthSuccessful = false; this.m_bLoginTransferInProgress = false; this.m_bEmailAuthSuccessfulWantToLeave = false; this.m_bTwoFactorAuthSuccessful = false; this.m_bTwoFactorAuthSuccessfulWantToLeave = false; this.m_sOAuthRedirectURI = 'steammobile://mobileloginsucceeded'; this.m_sAuthCode = ""; this.m_sPhoneNumberLastDigits = "??"; this.m_bTwoFactorReset = false; // values we collect from the user this.m_steamidEmailAuth = ''; // record keeping this.m_iIncorrectLoginFailures = 0; // mobile reveals password after a couple failures var _this = this; this.m_$LogonForm.submit( function(e) { _this.DoLogin(); e.preventDefault(); }); // find buttons and make them clickable $J('#login_btn_signin' ).children('a, button' ).click( function() { _this.DoLogin(); } ); this.InitModalContent(); // these modals need to be in the body because we refer to elements by name before they are ready this.m_$ModalAuthCode = this.GetModalContent( 'loginAuthCodeModal' ); this.m_$ModalAuthCode.find('[data-modalstate]' ).each( function() { $J(this).click( function() { _this.SetEmailAuthModalState( $J(this).data('modalstate') ); } ); }); this.m_$ModalAuthCode.find('form').submit( function(e) { _this.SetEmailAuthModalState('submit'); e.preventDefault(); }); this.m_EmailAuthModal = null; this.m_$ModalIPT = this.GetModalContent( 'loginIPTModal' ); this.m_$ModalTwoFactor = this.GetModalContent( 'loginTwoFactorCodeModal' ); this.m_$ModalTwoFactor.find( '[data-modalstate]' ).each( function() { $J(this).click( function() { _this.SetTwoFactorAuthModalState( $J(this).data('modalstate') ); } ); }); this.m_$ModalTwoFactor.find( 'form' ).submit( function(e) { // Prevent submit if nothing was entered if ( $J('#twofactorcode_entry').val() != '' ) { // Push the left button var $btnLeft = _this.m_$ModalTwoFactor.find( '.auth_buttonset:visible .auth_button.leftbtn ' ); $btnLeft.trigger( 'click' ); } e.preventDefault(); }); // register to listen to IOS two factor callback $J(document).on('SteamMobile_ReceiveAuthCode', function( e, authcode ) { _this.m_sAuthCode = authcode; }); $J('#captchaRefreshLink' ).click( $J.proxy( this.RefreshCaptcha, this ) ); // include some additional scripts we may need if ( typeof BigNumber == 'undefined' ) $J.ajax( { url: 'https://store.st.dl.eccdnx.com/public/shared/javascript/crypto/jsbn.js', type: 'get', dataType: 'script', cache: true } ); if ( typeof RSA == 'undefined' ) $J.ajax( { url: 'https://store.st.dl.eccdnx.com/public/shared/javascript/crypto/rsa.js', type: 'get', dataType: 'script', cache: true } ); } CLoginPromptManager.prototype.BIsIos = function() { return this.m_strMobileClientType == 'ios'; }; CLoginPromptManager.prototype.BIsAndroid = function() { return this.m_strMobileClientType == 'android'; }; CLoginPromptManager.prototype.BIsWinRT = function() { return this.m_strMobileClientType == 'winrt'; }; CLoginPromptManager.prototype.BIsUserInMobileClientVersionOrNewer = function( nMinMajor, nMinMinor, nMinPatch ) { if ( (!this.BIsIos() && !this.BIsAndroid() && !this.BIsWinRT() ) || this.m_strMobileClientVersion == '' ) return false; var version = this.m_strMobileClientVersion.match( /(?:(\d+) )?\(?(\d+)\.(\d+)(?:\.(\d+))?\)?/ ); if ( version && version.length >= 3 ) { var nMajor = parseInt( version[2] ); var nMinor = parseInt( version[3] ); var nPatch = parseInt( version[4] ); return nMajor > nMinMajor || ( nMajor == nMinMajor && ( nMinor > nMinMinor || ( nMinor == nMinMinor && nPatch >= nMinPatch ) ) ); } }; CLoginPromptManager.prototype.GetParameters = function( rgParams ) { var rgDefaultParams = { 'donotcache': new Date().getTime() }; if ( this.m_strSessionID ) rgDefaultParams['sessionid'] = this.m_strSessionID; return $J.extend( rgDefaultParams, rgParams ); }; CLoginPromptManager.prototype.$LogonFormElement = function( strElementName ) { var $Form = this.m_$LogonForm; var elInput = this.m_$LogonForm[0].elements[ strElementName ]; if ( !elInput ) { var $Input = $J('', {type: 'hidden', name: strElementName } ); $Form.append( $Input ); return $Input; } else { return $J( elInput ); } }; CLoginPromptManager.prototype.HighlightFailure = function( msg ) { if ( this.m_fnOnFailure ) { this.m_fnOnFailure( msg ); // always blur on mobile so the error can be seen if ( this.m_bIsMobile && msg ) $J('input:focus').blur(); } else { var $ErrorElement = $J('#error_display'); if ( msg ) { $ErrorElement.text( msg ); $ErrorElement.slideDown(); if ( this.m_bIsMobile ) $J('input:focus').blur(); } else { $ErrorElement.hide(); } } }; //Refresh the catpcha image CLoginPromptManager.prototype.RefreshCaptcha = function() { var _this = this; $J.post( this.m_strBaseURL + 'refreshcaptcha/', this.GetParameters( {} ) ) .done( function( data ) { _this.UpdateCaptcha( data.gid ); }); }; CLoginPromptManager.prototype.UpdateCaptcha = function( gid ) { if ( gid != -1 ) { $J('#captcha_entry').show(); var $ImageElement = $J('#captchaImg'); var strURL = this.m_strBaseURL + 'rendercaptcha/?gid=' + gid; if ( $ImageElement.data( 'noborder' ) ) { strURL += '&noborder=1'; } $ImageElement.attr( 'src', strURL ); this.$LogonFormElement('captcha_text').val(''); } else { $J('#captcha_entry' ).hide(); } this.m_gidCaptcha = gid; }; CLoginPromptManager.prototype.DoLogin = function() { var form = this.m_$LogonForm[0]; var username = form.elements['username'].value; this.m_strUsernameEntered = username; username = username.replace( /[^\x00-\x7F]/g, '' ); // remove non-standard-ASCII characters this.m_strUsernameCanonical = username; var password = form.elements['password'].value; password = password.replace( /[^\x00-\x7F]/g, '' ); // remove non-standard-ASCII characters if ( this.m_bLoginInFlight || password.length == 0 || username.length == 0 ) return; this.m_bLoginInFlight = true; $J('#login_btn_signin').hide(); $J('#login_btn_wait').show(); // reset some state this.HighlightFailure( '' ); var _this = this; $J.post( this.m_strBaseURL + 'getrsakey/', this.GetParameters( { username: username } ) ) .done( $J.proxy( this.OnRSAKeyResponse, this ) ) .fail( function () { ShowAlertDialog( '错误', '与 Steam 服务器通信时出现问题。请稍后重试。' ); $J('#login_btn_signin').show(); $J('#login_btn_wait').hide(); _this.m_bLoginInFlight = false; }); }; // used to get mobile client to execute a steammobile URL CLoginPromptManager.prototype.RunLocalURL = function(url) { var $IFrame = $J('', {src: url} ); $J(document.body).append( $IFrame ); // take it back out immediately $IFrame.remove(); }; var g_interval = null; // read results from Android or WinRT clients CLoginPromptManager.prototype.GetValueFromLocalURL = function( url, callback ) { window.g_status = null; window.g_data = null; this.RunLocalURL( url ); var timeoutTime = Date.now() + 1000 * 5; if ( g_interval != null ) { window.clearInterval( g_interval ); g_interval = null; } // poll regularly (but gently) for an update. g_interval = window.setInterval( function() { var status = window.SGHandler.getResultStatus(); if ( status && status != 'busy' ) { if ( g_interval ) window.clearInterval( g_interval ); var value = window.SGHandler.getResultValue(); callback( [ status, value ] ); return; } if ( Date.now() > timeoutTime ) { if ( g_interval ) window.clearInterval( g_interval ); callback( ['error', 'timeout'] ); return; } }, 100); }; // this function is invoked by iOS after the steammobile:// url is triggered by GetAuthCode. // we post an event to the dom to let any login handlers deal with it. function receiveAuthCode( code ) { $J(document).trigger( 'SteamMobile_ReceiveAuthCode', [ code ] ); }; CLoginPromptManager.prototype.GetAuthCode = function( results, callback ) { if ( this.m_bIsMobile ) { // honor manual entry before anything else var code = $J('#twofactorcode_entry').val(); if ( code.length > 0 ) { callback( results, code ); return; } if ( this.BIsIos() ) { this.m_sAuthCode = ''; this.RunLocalURL( "steammobile://twofactorcode?gid=" + results.token_gid ); // this is expected to trigger receiveAuthCode and we'll have this value set by the time it's done if ( this.m_sAuthCode.length > 0 ) { callback( results, this.m_sAuthCode ); return; } } else if ( this.BIsAndroid() || this.BIsWinRT() ) { var result = this.GetValueFromLocalURL('steammobile://twofactorcode?gid=' + results.token_gid, function(result) { if ( result[0] == 'ok' ) { callback(results, result[1]); } else { // this may be in the modal callback(results, $J('#twofactorcode_entry').val()); } }); return; } // this may be in the modal callback(results, $J('#twofactorcode_entry').val()); } else { var authCode = this.m_sAuthCode; this.m_sAuthCode = ''; callback( results, authCode ); } }; CLoginPromptManager.prototype.OnRSAKeyResponse = function( results ) { if ( results.publickey_mod && results.publickey_exp && results.timestamp ) { this.GetAuthCode( results , $J.proxy(this.OnAuthCodeResponse, this) ); } else { if ( results.message ) { ShowAlertDialog( '错误', results.message ); } else { ShowAlertDialog( '错误', '与 Steam 服务器通信时出现问题。请稍后重试。' ); } $J('#login_btn_signin').show(); $J('#login_btn_wait').hide(); this.m_bLoginInFlight = false; } }; CLoginPromptManager.prototype.OnAuthCodeResponse = function( results, authCode ) { var form = this.m_$LogonForm[0]; var pubKey = RSA.getPublicKey(results.publickey_mod, results.publickey_exp); var username = this.m_strUsernameCanonical; var password = form.elements['password'].value; password = password.replace(/[^\x00-\x7F]/g, ''); // remove non-standard-ASCII characters var encryptedPassword = RSA.encrypt(password, pubKey); var rgParameters = { password: encryptedPassword, username: username, twofactorcode: authCode, emailauth: form.elements['emailauth'] ? form.elements['emailauth'].value : '', loginfriendlyname: form.elements['loginfriendlyname'] ? form.elements['loginfriendlyname'].value : '', captchagid: this.m_gidCaptcha, captcha_text: form.elements['captcha_text'] ? form.elements['captcha_text'].value : '', emailsteamid: this.m_steamidEmailAuth, rsatimestamp: results.timestamp, remember_login: ( form.elements['remember_login'] && form.elements['remember_login'].checked ) ? 'true' : 'false' }; if (this.m_bIsMobile) rgParameters.oauth_client_id = form.elements['oauth_client_id'].value; var _this = this; $J.post(this.m_strBaseURL + 'dologin/', this.GetParameters(rgParameters)) .done($J.proxy(this.OnLoginResponse, this)) .fail(function () { ShowAlertDialog('错误', '与 Steam 服务器通信时出现问题。请稍后重试。' ); $J('#login_btn_signin').show(); $J('#login_btn_wait').hide(); _this.m_bLoginInFlight = false; }); }; CLoginPromptManager.prototype.OnLoginResponse = function( results ) { this.m_bLoginInFlight = false; var bRetry = true; if ( results.login_complete ) { if ( this.m_bIsMobile && results.oauth ) { if( results.redirect_uri ) { // Special case dota dev universe work if ( results.redirect_uri.startsWith( "http://www.dota2.com" ) ) { } this.m_sOAuthRedirectURI = results.redirect_uri; } this.$LogonFormElement('oauth' ).val( results.oauth ); bRetry = false; this.LoginComplete(); return; } var bRunningTransfer = false; if ( ( results.transfer_url || results.transfer_urls ) && results.transfer_parameters ) { bRunningTransfer = true; var _this = this; if ( !this.m_bLoginTransferInProgress ) CLoginPromptManager.TransferLogin( results.transfer_urls || [ results.transfer_url ], results.transfer_parameters, function() { _this.OnTransferComplete(); } ); this.m_bLoginTransferInProgress = true; } if ( this.m_bInEmailAuthProcess ) { this.m_bEmailAuthSuccessful = true; this.SetEmailAuthModalState( 'success' ); } else if ( this.m_bInTwoFactorAuthProcess ) { this.m_bTwoFactorAuthSuccessful = true; this.SetTwoFactorAuthModalState( 'success' ); } else { bRetry = false; if ( !bRunningTransfer ) this.LoginComplete(); } } else { // if there was some kind of other error while doing email auth or twofactor, make sure // the modals don't get stuck if ( !results.emailauth_needed && this.m_EmailAuthModal ) this.m_EmailAuthModal.Dismiss(); if ( !results.requires_twofactor && this.m_TwoFactorModal ) this.m_TwoFactorModal.Dismiss(); if ( results.requires_twofactor ) { $J('#captcha_entry').hide(); if ( !this.m_bInTwoFactorAuthProcess ) this.StartTwoFactorAuthProcess(); else this.SetTwoFactorAuthModalState( 'incorrectcode' ); } else if ( results.captcha_needed && results.captcha_gid ) { this.UpdateCaptcha( results.captcha_gid ); this.m_iIncorrectLoginFailures ++; } else if ( results.emailauth_needed ) { if ( results.emaildomain ) $J('#emailauth_entercode_emaildomain').text( results.emaildomain ); if ( results.emailsteamid ) this.m_steamidEmailAuth = results.emailsteamid; if ( !this.m_bInEmailAuthProcess ) this.StartEmailAuthProcess(); else this.SetEmailAuthModalState( 'incorrectcode' ); } else if ( results.denied_ipt ) { ShowDialog( '英特尔® 身份保护技术', this.m_$ModalIPT.show() ).always( $J.proxy( this.ClearLoginForm, this ) ); } else if ( results.agreement_session_url ) { window.location = results.agreement_session_url + '&redir=' + this.m_strBaseURL; } else { this.m_strUsernameEntered = null; this.m_strUsernameCanonical = null; this.m_iIncorrectLoginFailures ++; } if ( results.message ) { this.HighlightFailure( results.message ); if ( this.m_bIsMobile && this.m_iIncorrectLoginFailures > 1 && !results.emailauth_needed && !results.bad_captcha ) { // 2 failed logins not due to Steamguard or captcha, un-obfuscate the password field $J( '#passwordclearlabel' ).show(); $J( '#steamPassword' ).val(''); $J( '#steamPassword' ).attr( 'type', 'text' ); $J( '#steamPassword' ).attr( 'autocomplete', 'off' ); } else if ( results.clear_password_field ) { $J( '#input_password' ).val(''); $J( '#input_password' ).focus(); } } } if ( bRetry ) { $J('#login_btn_signin').show(); $J('#login_btn_wait').hide(); } }; CLoginPromptManager.prototype.ClearLoginForm = function() { var rgElements = this.m_$LogonForm[0].elements; rgElements['username'].value = ''; rgElements['password'].value = ''; if ( rgElements['emailauth'] ) rgElements['emailauth'].value = ''; this.m_steamidEmailAuth = ''; // part of the email auth modal $J('#authcode').value = ''; if ( this.m_gidCaptcha ) this.RefreshCaptcha(); rgElements['username'].focus(); }; CLoginPromptManager.prototype.StartEmailAuthProcess = function() { this.m_bInEmailAuthProcess = true; this.SetEmailAuthModalState( 'entercode' ); var _this = this; this.m_EmailAuthModal = ShowDialog( 'Steam 令牌', this.m_$ModalAuthCode.show() ) .always( function() { $J(document.body).append( _this.m_$ModalAuthCode.hide() ); _this.CancelEmailAuthProcess(); _this.m_EmailAuthModal = null; } ); this.m_EmailAuthModal.SetDismissOnBackgroundClick( false ); this.m_EmailAuthModal.SetRemoveContentOnDismissal( false ); $J('#authcode_entry').find('input').focus(); }; CLoginPromptManager.prototype.CancelEmailAuthProcess = function() { this.m_steamidEmailAuth = ''; if ( this.m_bInEmailAuthProcess ) { this.m_bInEmailAuthProcess = false; // if the user closed the auth window on the last step, just redirect them like we normally would if ( this.m_bEmailAuthSuccessful ) this.LoginComplete(); } }; CLoginPromptManager.TransferLogin = function( rgURLs, parameters, fnOnComplete ) { var bOnCompleteFired = false; var fnFireOnComplete = function( bSuccess ) { if ( !bOnCompleteFired ) fnOnComplete( bSuccess ); bOnCompleteFired = true; } var cResponsesExpected = rgURLs.length; $J(window).on( 'message', function() { if ( --cResponsesExpected == 0 ) fnFireOnComplete( true ); }); for ( var i = 0 ; i < rgURLs.length; i++ ) { var $IFrame = $J('', {id: 'transfer_iframe' } ).hide(); $J(document.body).append( $IFrame ); var doc = $IFrame[0].contentWindow.document; doc.open(); doc.write( '' ); for ( var param in parameters ) { doc.write( '' ); } doc.write( '' ); doc.write( '' ); doc.close(); } // after 10 seconds, give up on waiting for transfer window.setTimeout( function() { fnFireOnComplete( false ); }, 10000 ); }; CLoginPromptManager.prototype.OnTransferComplete = function() { if ( !this.m_bLoginTransferInProgress ) return; this.m_bLoginTransferInProgress = false; if ( !this.m_bInEmailAuthProcess && !this.m_bInTwoFactorAuthProcess ) this.LoginComplete(); else if ( this.m_bEmailAuthSuccessfulWantToLeave || this.m_bTwoFactorAuthSuccessfulWantToLeave) this.LoginComplete(); }; CLoginPromptManager.prototype.OnEmailAuthSuccessContinue = function() { $J('#auth_buttonsets').children().hide(); $J('#auth_buttonset_waiting').show(); if ( this.m_bLoginTransferInProgress ) { this.m_bEmailAuthSuccessfulWantToLeave = true; } else this.LoginComplete(); }; CLoginPromptManager.prototype.LoginComplete = function() { if ( this.m_fnOnSuccess ) { this.m_fnOnSuccess(); } else if ( $J('#openidForm').length ) { $J('#openidForm').submit(); } else if ( this.m_strRedirectURL != '' ) { // If this isn't one of our URLs, reject anything that looks like it has a protocol in it. if ( this.m_strRedirectURL.match ( /^[^\/]*:/i ) ) { if ( this.m_strRedirectURL.replace( /^http:/, 'https:' ).indexOf( this.m_strSiteBaseURL.replace( /^http:/, 'https:') ) !== 0 ) { this.m_strRedirectURL = ''; } } // browsers treat multiple leading slashes as the end of the protocol specifier if ( this.m_strRedirectURL.match( /^\/\// ) ) { this.m_strRedirectURL = ''; } if( this.m_strRedirectURL ) window.location = this.m_strRedirectURL; else window.location = this.m_strSiteBaseURL } else if ( this.m_bIsMobile ) { var oauthJSON = document.forms['logon'].elements['oauth'] && document.forms['logon'].elements['oauth'].value; if ( oauthJSON && ( oauthJSON.length > 0 ) ) { if ( this.m_bMobileClientSupportsPostMessage ) { var strHost = window.location.protocol + '//' + window.location.host; window.postMessage( oauthJSON, strHost ); } else { window.location = this.m_sOAuthRedirectURI + '?' + oauthJSON; } } } }; CLoginPromptManager.prototype.SubmitAuthCode = function() { if ( !v_trim( $J('#authcode').val() ).length ) return; $J('#auth_details_computer_name').css('color', '85847f' ); //TODO $J('#auth_buttonsets').children().hide(); $J('#auth_buttonset_waiting').show(); this.$LogonFormElement( 'loginfriendlyname' ).val( $J('#friendlyname').val() ); this.$LogonFormElement( 'emailauth' ).val( $J('#authcode').val() ); this.DoLogin(); }; CLoginPromptManager.prototype.SetEmailAuthModalState = function( step ) { if ( step == 'submit' ) { this.SubmitAuthCode(); return; } else if ( step == 'complete' ) { this.OnEmailAuthSuccessContinue(); return; } $J('#auth_messages').children().hide(); $J('#auth_message_' + step ).show(); $J('#auth_details_messages').children().hide(); $J('#auth_details_' + step ).show(); $J('#auth_buttonsets').children().hide(); $J('#auth_buttonset_' + step ).show(); $J('#authcode_help_supportlink').hide(); var icon='key'; var bShowAuthcodeEntry = true; if ( step == 'entercode' ) { icon = 'mail'; } else if ( step == 'checkspam' ) { icon = 'trash'; } else if ( step == 'success' ) { icon = 'unlock'; bShowAuthcodeEntry = false; $J('#success_continue_btn').focus(); this.m_EmailAuthModal.SetDismissOnBackgroundClick( true ); this.m_EmailAuthModal.always( $J.proxy( this.LoginComplete, this ) ); } else if ( step == 'incorrectcode' ) { icon = 'lock'; } else if ( step == 'help' ) { icon = 'steam'; bShowAuthcodeEntry = false; $J('#authcode_help_supportlink').show(); } if ( bShowAuthcodeEntry ) { var $AuthcodeEntry = $J('#authcode_entry'); if ( !$AuthcodeEntry.is(':visible') ) { $AuthcodeEntry.show().find('input').focus(); } $J('#auth_details_computer_name').show(); } else { $J('#authcode_entry').hide(); $J('#auth_details_computer_name').hide(); } $J('#auth_icon').attr('class', 'auth_icon auth_icon_' + icon ); }; CLoginPromptManager.prototype.StartTwoFactorAuthProcess = function() { this.m_bInTwoFactorAuthProcess = true; this.SetTwoFactorAuthModalState( 'entercode' ); var _this = this; this.m_TwoFactorModal = ShowDialog( 'Steam 令牌手机验证', this.m_$ModalTwoFactor.show() ) .fail( function() { _this.CancelTwoFactorAuthProcess(); } ) .always( function() { $J(document.body).append( _this.m_$ModalTwoFactor.hide() ); _this.m_bInTwoFactorAuthProcess = false; _this.m_TwoFactorModal = null; } ); this.m_TwoFactorModal.SetMaxWidth( 400 ); this.m_TwoFactorModal.SetDismissOnBackgroundClick( false ); this.m_TwoFactorModal.SetRemoveContentOnDismissal( false ); $J('#twofactorcode_entry').focus(); }; CLoginPromptManager.prototype.CancelTwoFactorAuthProcess = function() { this.m_bInTwoFactorAuthProcess = false; if ( this.m_bTwoFactorAuthSuccessful ) this.LoginComplete(); else this.ClearLoginForm(); }; CLoginPromptManager.prototype.OnTwoFactorResetOptionsResponse = function( results ) { if ( results.success && results.options.sms.allowed ) { this.m_sPhoneNumberLastDigits = results.options.sms.last_digits; this.SetTwoFactorAuthModalState( 'selfhelp_sms_remove' ); // Or reset if this.m_bTwoFactorReset } else if ( results.success ) { this.SetTwoFactorAuthModalState( 'selfhelp_nosms' ); } else { this.SetTwoFactorAuthModalState( 'selfhelp_failure' ); $J( '#login_twofactorauth_details_selfhelp_failure' ).text( results.message ); } }; CLoginPromptManager.prototype.OnTwoFactorRecoveryFailure = function() { this.SetTwoFactorAuthModalState( 'selfhelp_failure' ); $J( '#login_twofactorauth_details_selfhelp_failure' ).text( '' ); // v0v }; CLoginPromptManager.prototype.OnStartRemoveTwoFactorResponse = function( results ) { if ( results.success ) { this.SetTwoFactorAuthModalState( 'selfhelp_sms_remove_entercode' ); } else { this.SetTwoFactorAuthModalState( 'selfhelp_failure' ); $J( '#login_twofactorauth_details_selfhelp_failure' ).text( results.message ); } }; CLoginPromptManager.prototype.OnRemoveTwoFactorResponse = function( results ) { if ( results.success ) { if ( this.m_bTwoFactorReset ) { if ( this.m_bIsMobileSteamClient && !this.m_bMobileClientSupportsPostMessage ) this.RunLocalURL( "steammobile://steamguard?op=setsecret&arg1=" + results.replacement_token ); this.SetTwoFactorAuthModalState( 'selfhelp_twofactor_replaced' ); } else { this.SetTwoFactorAuthModalState( 'selfhelp_twofactor_removed' ); } } else if ( results.retry ) { this.SetTwoFactorAuthModalState( 'selfhelp_sms_remove_incorrectcode' ); } else { this.SetTwoFactorAuthModalState( 'selfhelp_failure' ); $J( '#login_twofactorauth_details_selfhelp_failure' ).text( results.message ); } }; CLoginPromptManager.prototype.OnUseTwoFactorRecoveryCodeResponse = function( results ) { if ( results.success ) { this.SetTwoFactorAuthModalState( 'selfhelp_twofactor_removed' ); } else if ( results.retry ) { $J( '#login_twofactorauth_details_selfhelp_rcode_incorrectcode' ).text( results.message ); this.SetTwoFactorAuthModalState( 'selfhelp_rcode_incorrectcode' ); } else if ( results.exhausted ) { $J( '#login_twofactorauth_details_selfhelp_rcode_incorrectcode_exhausted' ).text( results.message ); this.SetTwoFactorAuthModalState( 'selfhelp_rcode_incorrectcode_exhausted' ); } else { this.SetTwoFactorAuthModalState( 'selfhelp_failure' ); $J( '#login_twofactorauth_details_selfhelp_failure' ).text( results.message ); } }; CLoginPromptManager.prototype.OnTwoFactorAuthSuccessContinue = function() { if ( !this.m_bIsMobile ) { $J('#login_twofactorauth_buttonsets').children().hide(); $J('#login_twofactorauth_buttonset_waiting').show(); } if ( this.m_bLoginTransferInProgress ) { this.m_bTwoFactorAuthSuccessfulWantToLeave = true; } else { this.LoginComplete(); } }; CLoginPromptManager.prototype.SetTwoFactorAuthModalState = function( step ) { if ( step == 'submit' ) { $J('#login_twofactor_authcode_entry').hide(); this.SubmitTwoFactorCode(); return; } else if ( step == 'success' ) { this.OnTwoFactorAuthSuccessContinue(); return; } $J('#login_twofactorauth_messages').children().hide(); $J('#login_twofactorauth_message_' + step ).show(); $J('#login_twofactorauth_details_messages').children().hide(); $J('#login_twofactorauth_details_' + step ).show(); $J('#login_twofactorauth_buttonsets').children().hide(); $J('#login_twofactorauth_buttonset_' + step ).show(); $J('#login_twofactor_authcode_help_supportlink').hide(); var icon = 'key'; if ( step == 'entercode' ) { icon = 'phone'; $J('#login_twofactor_authcode_entry').show(); $J('#twofactorcode_entry').val(''); $J('#login_twofactorauth_message_entercode_accountname').text( this.m_strUsernameEntered ); $J('#twofactorcode_entry').focus(); } else if ( step == 'incorrectcode' ) { icon = 'lock'; $J('#login_twofactor_authcode_entry').show(); $J('#twofactorcode_entry').val(''); $J('#twofactorcode_entry').focus(); } else if ( step == 'selfhelp' ) { icon = 'steam'; $J('#login_twofactor_authcode_entry').hide(); if ( !this.m_bIsMobileSteamClient || this.BIsAndroid() && !this.BIsUserInMobileClientVersionOrNewer( 2, 0, 32 ) || this.BIsIos() && !this.BIsUserInMobileClientVersionOrNewer( 2, 0, 0 ) // no version minimum for Windows phones ) { $J( '#login_twofactorauth_buttonset_selfhelp div[data-modalstate=selfhelp_sms_reset_start]' ).hide(); } } else if ( step == 'selfhelp_sms_remove_start' || step == 'selfhelp_sms_reset_start' ) { icon = 'steam'; $J('#login_twofactor_authcode_entry').hide(); $J('#login_twofactorauth_messages').children().hide(); $J('#login_twofactorauth_details_messages').children().hide(); $J('#login_twofactorauth_buttonsets').children().hide(); $J('#login_twofactorauth_buttonset_waiting').show(); this.m_bTwoFactorReset = (step == 'selfhelp_sms_reset_start'); $J.post( this.m_strBaseURL + 'getresetoptions/', this.GetParameters( {} ) ) .done( $J.proxy( this.OnTwoFactorResetOptionsResponse, this ) ) .fail( $J.proxy( this.OnTwoFactorRecoveryFailure, this ) ); } else if ( step == 'selfhelp_sms_remove' ) { icon = 'steam'; $J('#login_twofactorauth_selfhelp_sms_remove_last_digits').text( this.m_sPhoneNumberLastDigits ); } else if ( step == 'selfhelp_sms_remove_sendcode' ) { icon = 'steam'; $J('#login_twofactor_authcode_entry').hide(); $J('#login_twofactorauth_messages').children().hide(); $J('#login_twofactorauth_details_messages').children().hide(); $J('#login_twofactorauth_buttonsets').children().hide(); $J('#login_twofactorauth_buttonset_waiting').show(); $J.post( this.m_strBaseURL + 'startremovetwofactor/', this.GetParameters( {} ) ) .done( $J.proxy( this.OnStartRemoveTwoFactorResponse, this ) ) .fail( $J.proxy( this.OnTwoFactorRecoveryFailure, this ) ); } else if ( step == 'selfhelp_sms_remove_entercode' ) { $J('#login_twofactorauth_selfhelp_sms_remove_entercode_last_digits').text( this.m_sPhoneNumberLastDigits ); $J('#login_twofactor_authcode_entry').show(); $J('#twofactorcode_entry').val(''); $J('#twofactorcode_entry').focus(); } else if ( step == 'selfhelp_sms_remove_checkcode' ) { $J('#login_twofactor_authcode_entry').hide(); $J('#login_twofactorauth_messages').children().hide(); $J('#login_twofactorauth_details_messages').children().hide(); $J('#login_twofactorauth_buttonsets').children().hide(); $J('#login_twofactorauth_buttonset_waiting').show(); // Immediately skip to incorrect code step without actually checking it if the user forgot to enter a code. if ( $J('#twofactorcode_entry').val().length == 0 ) { this.SetTwoFactorAuthModalState( 'selfhelp_sms_remove_incorrectcode' ); } else { var rgParameters = { smscode: $J( '#twofactorcode_entry' ).val(), reset: this.m_bTwoFactorReset ? 1 : 0 }; $J.post( this.m_strBaseURL + 'removetwofactor/', this.GetParameters( rgParameters ) ) .done( $J.proxy( this.OnRemoveTwoFactorResponse, this ) ) .fail( $J.proxy( this.OnTwoFactorRecoveryFailure, this ) ); } } else if ( step == 'selfhelp_sms_remove_incorrectcode' ) { icon = 'lock'; $J('#login_twofactor_authcode_entry').show(); $J('#twofactorcode_entry').focus(); } else if ( step == 'selfhelp_twofactor_removed' ) { icon = 'unlock'; $J('#twofactorcode_entry').val(''); // Make sure the next login doesn't supply a code } else if ( step == 'selfhelp_twofactor_replaced' ) { icon = 'steam'; $J('#twofactorcode_entry').val(''); } else if ( step == 'selfhelp_sms_remove_complete' ) { this.m_TwoFactorModal.Dismiss(); this.m_bInTwoFactorAuthProcess = false; this.DoLogin(); } else if ( step == 'selfhelp_nosms' ) { icon = 'steam'; $J('#login_twofactor_authcode_entry').hide(); } else if ( step == 'selfhelp_rcode' ) { $J('#login_twofactor_authcode_entry').show(); $J('#twofactorcode_entry').val(''); $J('#twofactorcode_entry').focus(); } else if ( step == 'selfhelp_rcode_checkcode' ) { $J('#login_twofactor_authcode_entry').hide(); $J('#login_twofactorauth_messages').children().hide(); $J('#login_twofactorauth_details_messages').children().hide(); $J('#login_twofactorauth_buttonsets').children().hide(); $J('#login_twofactorauth_buttonset_waiting').show(); // Immediately skip to incorrect code step without actually checking it if the user forgot to enter a code. if ( $J('#twofactorcode_entry').val().length == 0 ) { this.SetTwoFactorAuthModalState( 'selfhelp_rcode_incorrectcode' ); } else { var rgParameters = { rcode: $J( '#twofactorcode_entry' ).val() }; $J.post( this.m_strBaseURL + 'userecoverycode/', this.GetParameters( rgParameters ) ) .done( $J.proxy( this.OnUseTwoFactorRecoveryCodeResponse, this ) ) .fail( $J.proxy( this.OnTwoFactorRecoveryFailure, this ) ); } } else if ( step == 'selfhelp_rcode_incorrectcode' ) { icon = 'lock'; $J('#login_twofactor_authcode_entry').show(); $J('#twofactorcode_entry').focus(); } else if ( step == 'selfhelp_couldnthelp' ) { icon = 'steam'; $J('#login_twofactor_authcode_entry').hide(); } else if ( step == 'help' ) { icon = 'steam'; $J('#login_twofactor_authcode_entry').hide(); $J('#login_twofactor_authcode_help_supportlink').show(); } else if ( step == 'selfhelp_failure' ) { icon = 'steam'; } if ( this.m_bInTwoFactorAuthProcess && this.m_TwoFactorModal ) { this.m_TwoFactorModal.AdjustSizing(); } $J('#login_twofactorauth_icon').attr( 'class', 'auth_icon auth_icon_' + icon ); }; CLoginPromptManager.prototype.SubmitTwoFactorCode = function() { this.m_sAuthCode = $J('#twofactorcode_entry').val(); $J('#login_twofactorauth_messages').children().hide(); $J('#login_twofactorauth_details_messages').children().hide(); $J('#login_twofactorauth_buttonsets').children().hide(); $J('#login_twofactorauth_buttonset_waiting').show(); this.DoLogin(); }; CLoginPromptManager.sm_$Modals = null; // static CLoginPromptManager.prototype.InitModalContent = function() { var $modals = $J('#loginModals'); if ( $modals.length == 0 ) { // This does not work on Android 2.3, nor does creating the DOM node and // setting innerHTML without jQuery. So on the mobile login page, we put // the modals into the page directly, but not all pages have that. CLoginPromptManager.sm_$Modals = $J( "\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u60a8\u597d\uff01<\/div>\r\n\t\t\t\t\t\t\u6211\u4eec\u53d1\u73b0\u60a8\u6b63\u5728\u4f7f\u7528\u4e00\u53f0\u65b0\u7684\u7535\u8111\u6216\u65b0\u7684\u6d4f\u89c8\u5668\u8fdb\u884c\u767b\u5f55\u3002\u6216\u8005\uff0c\u4e5f\u8bb8\u8fd9\u5df2\u7ecf\u6709\u4e00\u6bb5\u65f6\u95f4...<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u9519\u8ba4\u4e3a\u5783\u573e\u90ae\u4ef6\uff1f<\/div>\r\n\t\t\t\t\t\t\u60a8\u6709\u68c0\u67e5\u8fc7\u60a8\u7684\u5783\u573e\u90ae\u4ef6\u6587\u4ef6\u5939\u5417\uff1f \u5982\u679c\u60a8\u5728\u6536\u4ef6\u7bb1\u4e2d\u6ca1\u6709\u770b\u5230\u6700\u8fd1\u7684\u4e00\u6761\u6765\u81ea Steam \u5ba2\u670d\u7684\u6d88\u606f\uff0c\u53bb\u90a3\u513f\u770b\u770b\u5427\u3002<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u6210\u529f\uff01<\/div>\r\n\t\t\t\t\t\t\u73b0\u5728\uff0c\u60a8\u53ef\u4ee5\u5728\u8fd9\u91cc\u8bbf\u95ee\u60a8\u7684 Steam \u5e10\u6237\u3002<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\t\u62b1\u6b49\uff0c\r\n\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u8ba9\u6211\u4eec\u6765\u5e2e\u60a8\u5427\uff01<\/div>\r\n\t\t\t\t\t\t\u5f88\u62b1\u6b49\u60a8\u9047\u5230\u95ee\u9898\u3002\u6211\u4eec\u77e5\u9053 Steam \u5e10\u6237\u5bf9\u60a8\u6765\u8bf4\u975e\u5e38\u73cd\u8d35\uff0c\u6211\u4eec\u81f4\u529b\u4e8e\u9632\u6b62\u60a8\u7684\u5e10\u6237\u906d\u5230\u975e\u6cd5\u76d7\u7528\u3002<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u4f5c\u4e3a\u989d\u5916\u7684\u5e10\u6237\u5b89\u5168\u63aa\u65bd\uff0c\u60a8\u9700\u8981\u8f93\u5165\u6211\u4eec\u521a\u521a\u53d1\u5230\u60a8\u5728 <\/span> \u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u7684\u7279\u6b8a\u9a8c\u8bc1\u7801\uff0c\u624d\u80fd\u6388\u6743\u6b64\u6d4f\u89c8\u5668\u8fdb\u884c\u767b\u5f55\u3002\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u5982\u679c\u8fd9\u662f\u4e00\u53f0\u516c\u7528\u8ba1\u7b97\u673a\uff0c\u8bf7\u52a1\u5fc5\u5728\u60a8\u7ed3\u675f\u4f1a\u8bdd\u65f6\u6ce8\u9500 Steam\u3002\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u8054\u7cfb Steam \u5ba2\u670d\u6765\u83b7\u5f97\u6211\u4eec\u5de5\u4f5c\u4eba\u5458\u7684\u5e2e\u52a9\u3002\u89e3\u51b3\u5408\u6cd5\u7528\u6237\u7684\u5e10\u6237\u767b\u5f55\u95ee\u9898\u662f\u6211\u4eec\u7684\u7b2c\u4e00\u8981\u52a1\u3002\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8054\u7cfb Steam \u5ba2\u670d\u6765\u83b7\u5f97\u5e10\u6237\u76f8\u5173\u7684\u5e2e\u52a9<\/a>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\t\u6211\u7684\u7279\u6b8a\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u4ec0\u4e48\u4fe1\u606f\uff1f<\/div>\r\n\t\t\t\t\t\t\u6211\u6ca1\u6709\u6536\u5230\u6765\u81ea Steam \u5ba2\u670d\u7684\u4efb\u4f55\u6d88\u606f\u2026<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u627e\u5230\u5b83\u4e86\uff01<\/div>\r\n\t\t\t\t\t\t\u6211\u5df2\u7ecf\u5728\u4e0a\u9762\u8f93\u5165\u4e86\u7279\u6b8a\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u4f9d\u65e7\u4e0d\u5e78\u2026<\/div>\r\n\t\t\t\t\t\t\u6211\u6ca1\u6709\u6536\u5230\u6765\u81ea Steam \u5ba2\u670d\u7684\u4efb\u4f55\u6d88\u606f\u2026<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u8f6c\u5230 Steam \uff01<\/div>\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t<\/a>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u6211\u60f3\u518d\u8bd5\u4e00\u6b21<\/div>\r\n\t\t\t\t\t\t\u6211\u5df2\u7ecf\u5728\u4e0a\u9762\u91cd\u65b0\u8f93\u5165\u4e86\u7279\u6b8a\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\t\u6211\u60f3\u6211\u9700\u8981 Steam \u5ba2\u670d\u7684\u63f4\u52a9\u2026<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\u4e3a\u4e86\u8ba9\u6b64\u6d4f\u89c8\u5668\u5728\u5df2\u542f\u7528 Steam \u4ee4\u724c\u7684\u8bbe\u5907\u5217\u8868\u4e2d\u6613\u4e8e\u8bc6\u522b\uff0c\u7ed9\u5b83\u8d77\u4e00\u4e2a\u597d\u8bb0\u7684\u540d\u79f0\u2014\u2014\u81f3\u5c11 6 \u4e2a\u5b57\u7b26\u957f\u3002\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t<\/div>\r\n\t\t<\/form>\r\n\t<\/div>\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u62b1\u6b49<\/div>\r\n\t\t\t\t\t\u6b64\u5e10\u6237\u5728\u6ca1\u6709\u989d\u5916\u6388\u6743\u7684\u60c5\u51b5\u4e0b\u4e0d\u80fd\u4ece\u6b64\u8ba1\u7b97\u673a\u8bbf\u95ee\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\u8bf7\u8054\u7cfb Steam \u5ba2\u670d\u6765\u83b7\u5f97\u6211\u4eec\u5de5\u4f5c\u4eba\u5458\u7684\u5e2e\u52a9\u3002\u89e3\u51b3\u5408\u6cd5\u7528\u6237\u7684\u5e10\u6237\u767b\u5f55\u95ee\u9898\u662f\u6211\u4eec\u7684\u7b2c\u4e00\u8981\u52a1\u3002\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u4e86\u89e3\u66f4\u591a<\/div>\r\n\t\t\t\t\t\u4e86\u89e3\u66f4\u591a\u6709\u5173 \u82f1\u7279\u5c14® ID \u4fdd\u62a4\u6280\u672f \u7684\u5185\u5bb9<\/div>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u60f3\u6211\u9700\u8981 Steam \u5ba2\u670d\u7684\u63f4\u52a9\u2026<\/div>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t<\/span> \u60a8\u597d\uff01<\/div>\r\n\t\t\t\t\t\u8be5\u5e10\u6237\u76ee\u524d\u6b63\u5728\u4f7f\u7528 Steam \u4ee4\u724c\u624b\u673a\u9a8c\u8bc1\u5668\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8ba9\u6211\u4eec\u6765\u5e2e\u60a8\u5427\uff01<\/div>\r\n\t\t\t\t\t\u5f88\u62b1\u6b49\u60a8\u9047\u5230\u95ee\u9898\u3002\u6211\u4eec\u77e5\u9053 Steam \u5e10\u6237\u5bf9\u60a8\u6765\u8bf4\u975e\u5e38\u73cd\u8d35\uff0c\u6211\u4eec\u81f4\u529b\u4e8e\u9632\u6b62\u60a8\u7684\u5e10\u6237\u906d\u5230\u975e\u6cd5\u76d7\u7528\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u786e\u8ba4\u60a8\u5e10\u6237\u7684\u6240\u6709\u6743<\/div>\r\n\t\t\t\t\t\u6211\u4eec\u4f1a\u53d1\u9001\u4e00\u6761\u5305\u542b\u5e10\u6237\u6062\u590d\u4ee3\u7801\u7684\u77ed\u4fe1\u5230\u5c3e\u53f7\u4e3a <\/span> \u7684\u624b\u673a\u53f7\u7801\u3002\u4e00\u65e6\u60a8\u8f93\u5165\u4ee3\u7801\uff0c\u6211\u4eec\u4f1a\u4ece\u60a8\u7684\u5e10\u6237\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\uff0c\u60a8\u5c06\u901a\u8fc7\u7535\u5b50\u90ae\u4ef6\u63a5\u6536 Steam \u4ee4\u724c\u9a8c\u8bc1\u7801\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u786e\u8ba4\u60a8\u5e10\u6237\u7684\u6240\u6709\u6743<\/div>\r\n\t\t\t\t\t\u6211\u4eec\u5df2\u5411\u60a8\u5c3e\u53f7\u4e3a <\/span> \u7684\u624b\u673a\u53f7\u7801\u53d1\u9001\u4e86\u4e00\u6761\u5305\u542b\u786e\u8ba4\u4ee3\u7801\u7684\u77ed\u4fe1\u3002\u5728\u4e0b\u65b9\u8f93\u5165\u4ee3\u7801\u4ee5\u65b9\u4fbf\u6211\u4eec\u4ece\u60a8\u7684\u5e10\u6237\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u6210\u529f\uff01<\/div>\r\n\t\t\t\t\t\u6211\u4eec\u5df2\u4ece\u60a8\u7684\u5e10\u6237\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\u3002\u4e0b\u4e00\u6b21\u60a8\u767b\u5f55\u65f6\uff0c\u60a8\u9700\u8981\u8f93\u5165\u53d1\u9001\u5230\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u7684 Steam \u4ee4\u724c\u9a8c\u8bc1\u7801\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u6210\u529f\uff01<\/div>\r\n\t\t\t\t\t\u60a8\u53ef\u4ee5\u4f7f\u7528\u8be5\u8bbe\u5907\u4e3a\u60a8\u7684\u5e10\u6237\u83b7\u53d6\u624b\u673a\u9a8c\u8bc1\u7801\u3002\u6b64\u524d\u4e3a\u60a8\u7684\u5e10\u6237\u63d0\u4f9b\u9a8c\u8bc1\u7801\u7684\u4efb\u4f55\u5176\u4ed6\u8bbe\u5907\u5c06\u4e0d\u518d\u62e5\u6709\u64cd\u4f5c\u6743\u9650\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u60a8\u662f\u5426\u62e5\u6709\u6062\u590d\u7801\uff1f<\/div>\r\n\t\t\t\t\t\u60a8\u6ca1\u6709\u4e0e Steam \u5e10\u6237\u76f8\u5173\u8054\u7684\u624b\u673a\u53f7\u7801\uff0c\u56e0\u4e3a\u6211\u4eec\u65e0\u6cd5\u901a\u8fc7\u77ed\u4fe1\u9a8c\u8bc1\u5e10\u6237\u7684\u6240\u6709\u6743\u3002\u60a8\u662f\u5426\u62e5\u6709\u5728\u6dfb\u52a0\u624b\u673a\u9a8c\u8bc1\u5668\u65f6\u8bb0\u4e0b\u7684\u6062\u590d\u7801\uff1f\u6062\u590d\u7801\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8f93\u5165\u60a8\u7684\u6062\u590d\u7801\r\n<\/div>\r\n\t\t\t\t\t\u8bf7\u5728\u4e0b\u65b9\u7684\u5bf9\u8bdd\u6846\u5185\u8f93\u5165\u60a8\u7684\u6062\u590d\u7801\u3002\u6062\u590d\u7801\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8ba9\u6211\u4eec\u6765\u5e2e\u60a8\u5427\uff01<\/div>\r\n\t\t\t\t\t\u5982\u679c\u60a8\u65e0\u6cd5\u4f7f\u7528\u60a8\u7684\u79fb\u52a8\u8bbe\u5907\u3001\u4e0e\u5e10\u6237\u5173\u8054\u7684\u624b\u673a\u53f7\u7801\uff0c\u5e76\u4e14\u6ca1\u6709\u5728\u60a8\u6dfb\u52a0\u624b\u673a\u9a8c\u8bc1\u5668\u65f6\u8bb0\u4e0b\u6062\u590d\u7801\uff0c\u90a3\u4e48\u8bf7\u8054\u7cfb Steam \u5ba2\u670d\u534f\u52a9\u60a8\u6062\u590d\u5e10\u6237\u7684\u8bbf\u95ee\u6743\u9650\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8ba9\u6211\u4eec\u6765\u5e2e\u60a8\u5427\uff01<\/div>\r\n\t\t\t\t\t\u5f88\u62b1\u6b49\u60a8\u9047\u5230\u95ee\u9898\u3002\u6211\u4eec\u77e5\u9053 Steam \u5e10\u6237\u5bf9\u60a8\u6765\u8bf4\u975e\u5e38\u73cd\u8d35\uff0c\u6211\u4eec\u81f4\u529b\u4e8e\u9632\u6b62\u60a8\u7684\u5e10\u6237\u906d\u5230\u975e\u6cd5\u76d7\u7528\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u62b1\u6b49\uff01<\/div>\r\n\t\t\t\t\t\u5728\u5904\u7406\u60a8\u7684\u8bf7\u6c42\u65f6\u9047\u5230\u9519\u8bef\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\u8f93\u5165\u663e\u793a\u5728 Steam \u624b\u673a\u5e94\u7528\u4e0a\u7684\u6700\u65b0\u9a8c\u8bc1\u7801\uff1a\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\u5982\u679c\u60a8\u65e0\u6cd5\u4f7f\u7528\u79fb\u52a8\u8bbe\u5907\uff0c\u6216\u662f\u7531\u4e8e\u5378\u8f7d\u4e86 Steam \u5e94\u7528\u800c\u65e0\u6cd5\u63a5\u6536\u4ee3\u7801\uff0c\u90a3\u4e48\u60a8\u53ef\u4ee5\u4ece\u5e10\u6237\u4e2d\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\u3002\u8fd9\u5c06\u51cf\u5c11\u60a8\u5e10\u6237\u7684\u5b89\u5168\uff0c\u56e0\u6b64\u60a8\u5e94\u8be5\u5728\u8fd9\u4e4b\u540e\u5c06\u624b\u673a\u9a8c\u8bc1\u5668\u6dfb\u52a0\u5230\u65b0\u7684\u79fb\u52a8\u8bbe\u5907\u4e0a\u3002\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\u8bf7\u8054\u7cfb Steam \u5ba2\u670d\u6765\u83b7\u5f97\u6211\u4eec\u5de5\u4f5c\u4eba\u5458\u7684\u5e2e\u52a9\u3002\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u8054\u7cfb Steam \u5ba2\u670d\u6765\u83b7\u5f97\u4f7f\u7528\u5e10\u6237\u7684\u5e2e\u52a9\t\t\t\t<\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u7684\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u65e0\u6cd5\u8bbf\u95ee\u6211\u7684\u624b\u673a\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u6211\u60f3\u518d\u8bd5\u4e00\u6b21<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u7ecf\u5728\u4e0a\u9762\u91cd\u65b0\u8f93\u5165\u4e86\u6211\u7684\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u60f3\u6211\u9700\u8981 Steam \u5ba2\u670d\u7684\u63f4\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u79fb\u9664\u9a8c\u8bc1\u5668<\/div>\r\n\t\t\t\t\t\u8fd4\u56de\u4ee5\u901a\u8fc7\u7535\u5b50\u90ae\u4ef6\u63a5\u6536\u4ee3\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u4f7f\u7528\u8be5\u8bbe\u5907<\/div>\r\n\t\t\t\t\t\u5e76\u5728\u8be5\u5e94\u7528\u4e0a\u83b7\u53d6\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u786e\u5b9a\uff01<\/div>\r\n\t\t\t\t\t\u7ed9\u6211\u53d1\u77ed\u4fe1<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u6211\u505a\u4e0d\u5230<\/div>\r\n\t\t\t\t\t\u56e0\u4e3a\u6211\u5df2\u65e0\u6cd5\u4f7f\u7528\u8be5\u624b\u673a\u53f7\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u5728\u4e0a\u65b9\u8f93\u5165\u4ee3\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u6ca1\u6536\u5230\u77ed\u4fe1<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u7ecf\u91cd\u65b0\u8f93\u5165\u4e86\u4ee3\u7801\u3002\u518d\u8bd5\u4e00\u6b21\u3002<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u6ca1\u6536\u5230\u77ed\u4fe1<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u767b\u5f55<\/div>\r\n\t\t\t\t\t\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u767b\u5f55<\/div>\r\n\t\t\t\t\t\u5230 Steam \u624b\u673a\u5e94\u7528<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u662f<\/div>\r\n\t\t\t\t\t\u6211\u6709\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u7684\u6062\u590d\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u5426<\/div>\r\n\t\t\t\t\t\u6211\u6ca1\u6709\u4f60\u4eec\u8bf4\u7684\u4ee3\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u7684\u6062\u590d\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u89c9\u5f97\u81ea\u5df1\u9700\u8981 Steam \u5ba2\u670d\u534f\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u7ecf\u91cd\u65b0\u8f93\u5165\u4e86\u4ee3\u7801\u3002\u518d\u8bd5\u4e00\u6b21\u3002<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u89c9\u5f97\u81ea\u5df1\u9700\u8981 Steam \u5ba2\u670d\u534f\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u89c9\u5f97\u81ea\u5df1\u9700\u8981 Steam \u5ba2\u670d\u534f\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u8054\u7cfb\u6211\u4eec<\/div>\r\n\t\t\t\t\t\u4ee5\u83b7\u5f97\u5e10\u6237\u8bbf\u95ee\u7684\u534f\u52a9<\/div>\r\n\t\t\t\t<\/a>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t<\/div>\r\n\t\t<\/form>\r\n\t<\/div>\r\n<\/div>\r\n" ); $J('body').append( CLoginPromptManager.sm_$Modals ); } else { CLoginPromptManager.sm_$Modals = $modals; } }; CLoginPromptManager.prototype.GetModalContent = function( strModalType ) { var $ModalContent = CLoginPromptManager.sm_$Modals.find( '.login_modal.' + strModalType ); if ( this.m_bIsMobileSteamClient ) { var manager = this; $ModalContent.find('a[data-externallink]' ).each( function() { if ( !manager.m_bMobileClientSupportsPostMessage ) $J(this).attr( 'href', 'steammobile://openexternalurl?url=' + $J(this).attr('href') ); else $J(this).on('click', function( e ) { e.preventDefault(); window.postMessage( JSON.stringify( {action: "openexternalurl", url: $J(this).attr('href') } ), window.location ); }); }); } return $ModalContent; };
\u6211\u4eec\u53d1\u73b0\u60a8\u6b63\u5728\u4f7f\u7528\u4e00\u53f0\u65b0\u7684\u7535\u8111\u6216\u65b0\u7684\u6d4f\u89c8\u5668\u8fdb\u884c\u767b\u5f55\u3002\u6216\u8005\uff0c\u4e5f\u8bb8\u8fd9\u5df2\u7ecf\u6709\u4e00\u6bb5\u65f6\u95f4...<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t
\u60a8\u6709\u68c0\u67e5\u8fc7\u60a8\u7684\u5783\u573e\u90ae\u4ef6\u6587\u4ef6\u5939\u5417\uff1f \u5982\u679c\u60a8\u5728\u6536\u4ef6\u7bb1\u4e2d\u6ca1\u6709\u770b\u5230\u6700\u8fd1\u7684\u4e00\u6761\u6765\u81ea Steam \u5ba2\u670d\u7684\u6d88\u606f\uff0c\u53bb\u90a3\u513f\u770b\u770b\u5427\u3002<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t
\u73b0\u5728\uff0c\u60a8\u53ef\u4ee5\u5728\u8fd9\u91cc\u8bbf\u95ee\u60a8\u7684 Steam \u5e10\u6237\u3002<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t
\u62b1\u6b49\uff0c\r\n\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t
\u5f88\u62b1\u6b49\u60a8\u9047\u5230\u95ee\u9898\u3002\u6211\u4eec\u77e5\u9053 Steam \u5e10\u6237\u5bf9\u60a8\u6765\u8bf4\u975e\u5e38\u73cd\u8d35\uff0c\u6211\u4eec\u81f4\u529b\u4e8e\u9632\u6b62\u60a8\u7684\u5e10\u6237\u906d\u5230\u975e\u6cd5\u76d7\u7528\u3002<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t
\u6b64\u5e10\u6237\u5728\u6ca1\u6709\u989d\u5916\u6388\u6743\u7684\u60c5\u51b5\u4e0b\u4e0d\u80fd\u4ece\u6b64\u8ba1\u7b97\u673a\u8bbf\u95ee\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t
\u8be5\u5e10\u6237\u76ee\u524d\u6b63\u5728\u4f7f\u7528 Steam \u4ee4\u724c\u624b\u673a\u9a8c\u8bc1\u5668\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t
\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t
\u5f88\u62b1\u6b49\u60a8\u9047\u5230\u95ee\u9898\u3002\u6211\u4eec\u77e5\u9053 Steam \u5e10\u6237\u5bf9\u60a8\u6765\u8bf4\u975e\u5e38\u73cd\u8d35\uff0c\u6211\u4eec\u81f4\u529b\u4e8e\u9632\u6b62\u60a8\u7684\u5e10\u6237\u906d\u5230\u975e\u6cd5\u76d7\u7528\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t
\u6211\u4eec\u4f1a\u53d1\u9001\u4e00\u6761\u5305\u542b\u5e10\u6237\u6062\u590d\u4ee3\u7801\u7684\u77ed\u4fe1\u5230\u5c3e\u53f7\u4e3a <\/span> \u7684\u624b\u673a\u53f7\u7801\u3002\u4e00\u65e6\u60a8\u8f93\u5165\u4ee3\u7801\uff0c\u6211\u4eec\u4f1a\u4ece\u60a8\u7684\u5e10\u6237\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\uff0c\u60a8\u5c06\u901a\u8fc7\u7535\u5b50\u90ae\u4ef6\u63a5\u6536 Steam \u4ee4\u724c\u9a8c\u8bc1\u7801\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u786e\u8ba4\u60a8\u5e10\u6237\u7684\u6240\u6709\u6743<\/div>\r\n\t\t\t\t\t\u6211\u4eec\u5df2\u5411\u60a8\u5c3e\u53f7\u4e3a <\/span> \u7684\u624b\u673a\u53f7\u7801\u53d1\u9001\u4e86\u4e00\u6761\u5305\u542b\u786e\u8ba4\u4ee3\u7801\u7684\u77ed\u4fe1\u3002\u5728\u4e0b\u65b9\u8f93\u5165\u4ee3\u7801\u4ee5\u65b9\u4fbf\u6211\u4eec\u4ece\u60a8\u7684\u5e10\u6237\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u6210\u529f\uff01<\/div>\r\n\t\t\t\t\t\u6211\u4eec\u5df2\u4ece\u60a8\u7684\u5e10\u6237\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\u3002\u4e0b\u4e00\u6b21\u60a8\u767b\u5f55\u65f6\uff0c\u60a8\u9700\u8981\u8f93\u5165\u53d1\u9001\u5230\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u7684 Steam \u4ee4\u724c\u9a8c\u8bc1\u7801\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u6210\u529f\uff01<\/div>\r\n\t\t\t\t\t\u60a8\u53ef\u4ee5\u4f7f\u7528\u8be5\u8bbe\u5907\u4e3a\u60a8\u7684\u5e10\u6237\u83b7\u53d6\u624b\u673a\u9a8c\u8bc1\u7801\u3002\u6b64\u524d\u4e3a\u60a8\u7684\u5e10\u6237\u63d0\u4f9b\u9a8c\u8bc1\u7801\u7684\u4efb\u4f55\u5176\u4ed6\u8bbe\u5907\u5c06\u4e0d\u518d\u62e5\u6709\u64cd\u4f5c\u6743\u9650\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u60a8\u662f\u5426\u62e5\u6709\u6062\u590d\u7801\uff1f<\/div>\r\n\t\t\t\t\t\u60a8\u6ca1\u6709\u4e0e Steam \u5e10\u6237\u76f8\u5173\u8054\u7684\u624b\u673a\u53f7\u7801\uff0c\u56e0\u4e3a\u6211\u4eec\u65e0\u6cd5\u901a\u8fc7\u77ed\u4fe1\u9a8c\u8bc1\u5e10\u6237\u7684\u6240\u6709\u6743\u3002\u60a8\u662f\u5426\u62e5\u6709\u5728\u6dfb\u52a0\u624b\u673a\u9a8c\u8bc1\u5668\u65f6\u8bb0\u4e0b\u7684\u6062\u590d\u7801\uff1f\u6062\u590d\u7801\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8f93\u5165\u60a8\u7684\u6062\u590d\u7801\r\n<\/div>\r\n\t\t\t\t\t\u8bf7\u5728\u4e0b\u65b9\u7684\u5bf9\u8bdd\u6846\u5185\u8f93\u5165\u60a8\u7684\u6062\u590d\u7801\u3002\u6062\u590d\u7801\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8ba9\u6211\u4eec\u6765\u5e2e\u60a8\u5427\uff01<\/div>\r\n\t\t\t\t\t\u5982\u679c\u60a8\u65e0\u6cd5\u4f7f\u7528\u60a8\u7684\u79fb\u52a8\u8bbe\u5907\u3001\u4e0e\u5e10\u6237\u5173\u8054\u7684\u624b\u673a\u53f7\u7801\uff0c\u5e76\u4e14\u6ca1\u6709\u5728\u60a8\u6dfb\u52a0\u624b\u673a\u9a8c\u8bc1\u5668\u65f6\u8bb0\u4e0b\u6062\u590d\u7801\uff0c\u90a3\u4e48\u8bf7\u8054\u7cfb Steam \u5ba2\u670d\u534f\u52a9\u60a8\u6062\u590d\u5e10\u6237\u7684\u8bbf\u95ee\u6743\u9650\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8ba9\u6211\u4eec\u6765\u5e2e\u60a8\u5427\uff01<\/div>\r\n\t\t\t\t\t\u5f88\u62b1\u6b49\u60a8\u9047\u5230\u95ee\u9898\u3002\u6211\u4eec\u77e5\u9053 Steam \u5e10\u6237\u5bf9\u60a8\u6765\u8bf4\u975e\u5e38\u73cd\u8d35\uff0c\u6211\u4eec\u81f4\u529b\u4e8e\u9632\u6b62\u60a8\u7684\u5e10\u6237\u906d\u5230\u975e\u6cd5\u76d7\u7528\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u62b1\u6b49\uff01<\/div>\r\n\t\t\t\t\t\u5728\u5904\u7406\u60a8\u7684\u8bf7\u6c42\u65f6\u9047\u5230\u9519\u8bef\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\u8f93\u5165\u663e\u793a\u5728 Steam \u624b\u673a\u5e94\u7528\u4e0a\u7684\u6700\u65b0\u9a8c\u8bc1\u7801\uff1a\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\u5982\u679c\u60a8\u65e0\u6cd5\u4f7f\u7528\u79fb\u52a8\u8bbe\u5907\uff0c\u6216\u662f\u7531\u4e8e\u5378\u8f7d\u4e86 Steam \u5e94\u7528\u800c\u65e0\u6cd5\u63a5\u6536\u4ee3\u7801\uff0c\u90a3\u4e48\u60a8\u53ef\u4ee5\u4ece\u5e10\u6237\u4e2d\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\u3002\u8fd9\u5c06\u51cf\u5c11\u60a8\u5e10\u6237\u7684\u5b89\u5168\uff0c\u56e0\u6b64\u60a8\u5e94\u8be5\u5728\u8fd9\u4e4b\u540e\u5c06\u624b\u673a\u9a8c\u8bc1\u5668\u6dfb\u52a0\u5230\u65b0\u7684\u79fb\u52a8\u8bbe\u5907\u4e0a\u3002\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\u8bf7\u8054\u7cfb Steam \u5ba2\u670d\u6765\u83b7\u5f97\u6211\u4eec\u5de5\u4f5c\u4eba\u5458\u7684\u5e2e\u52a9\u3002\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u8054\u7cfb Steam \u5ba2\u670d\u6765\u83b7\u5f97\u4f7f\u7528\u5e10\u6237\u7684\u5e2e\u52a9\t\t\t\t<\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u7684\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u65e0\u6cd5\u8bbf\u95ee\u6211\u7684\u624b\u673a\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u6211\u60f3\u518d\u8bd5\u4e00\u6b21<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u7ecf\u5728\u4e0a\u9762\u91cd\u65b0\u8f93\u5165\u4e86\u6211\u7684\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u60f3\u6211\u9700\u8981 Steam \u5ba2\u670d\u7684\u63f4\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u79fb\u9664\u9a8c\u8bc1\u5668<\/div>\r\n\t\t\t\t\t\u8fd4\u56de\u4ee5\u901a\u8fc7\u7535\u5b50\u90ae\u4ef6\u63a5\u6536\u4ee3\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u4f7f\u7528\u8be5\u8bbe\u5907<\/div>\r\n\t\t\t\t\t\u5e76\u5728\u8be5\u5e94\u7528\u4e0a\u83b7\u53d6\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u786e\u5b9a\uff01<\/div>\r\n\t\t\t\t\t\u7ed9\u6211\u53d1\u77ed\u4fe1<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u6211\u505a\u4e0d\u5230<\/div>\r\n\t\t\t\t\t\u56e0\u4e3a\u6211\u5df2\u65e0\u6cd5\u4f7f\u7528\u8be5\u624b\u673a\u53f7\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u5728\u4e0a\u65b9\u8f93\u5165\u4ee3\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u6ca1\u6536\u5230\u77ed\u4fe1<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u7ecf\u91cd\u65b0\u8f93\u5165\u4e86\u4ee3\u7801\u3002\u518d\u8bd5\u4e00\u6b21\u3002<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u6ca1\u6536\u5230\u77ed\u4fe1<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u767b\u5f55<\/div>\r\n\t\t\t\t\t\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u767b\u5f55<\/div>\r\n\t\t\t\t\t\u5230 Steam \u624b\u673a\u5e94\u7528<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u662f<\/div>\r\n\t\t\t\t\t\u6211\u6709\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u7684\u6062\u590d\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u5426<\/div>\r\n\t\t\t\t\t\u6211\u6ca1\u6709\u4f60\u4eec\u8bf4\u7684\u4ee3\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u7684\u6062\u590d\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u89c9\u5f97\u81ea\u5df1\u9700\u8981 Steam \u5ba2\u670d\u534f\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u7ecf\u91cd\u65b0\u8f93\u5165\u4e86\u4ee3\u7801\u3002\u518d\u8bd5\u4e00\u6b21\u3002<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u89c9\u5f97\u81ea\u5df1\u9700\u8981 Steam \u5ba2\u670d\u534f\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u89c9\u5f97\u81ea\u5df1\u9700\u8981 Steam \u5ba2\u670d\u534f\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u8054\u7cfb\u6211\u4eec<\/div>\r\n\t\t\t\t\t\u4ee5\u83b7\u5f97\u5e10\u6237\u8bbf\u95ee\u7684\u534f\u52a9<\/div>\r\n\t\t\t\t<\/a>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t<\/div>\r\n\t\t<\/form>\r\n\t<\/div>\r\n<\/div>\r\n" ); $J('body').append( CLoginPromptManager.sm_$Modals ); } else { CLoginPromptManager.sm_$Modals = $modals; } }; CLoginPromptManager.prototype.GetModalContent = function( strModalType ) { var $ModalContent = CLoginPromptManager.sm_$Modals.find( '.login_modal.' + strModalType ); if ( this.m_bIsMobileSteamClient ) { var manager = this; $ModalContent.find('a[data-externallink]' ).each( function() { if ( !manager.m_bMobileClientSupportsPostMessage ) $J(this).attr( 'href', 'steammobile://openexternalurl?url=' + $J(this).attr('href') ); else $J(this).on('click', function( e ) { e.preventDefault(); window.postMessage( JSON.stringify( {action: "openexternalurl", url: $J(this).attr('href') } ), window.location ); }); }); } return $ModalContent; };
\u6211\u4eec\u5df2\u5411\u60a8\u5c3e\u53f7\u4e3a <\/span> \u7684\u624b\u673a\u53f7\u7801\u53d1\u9001\u4e86\u4e00\u6761\u5305\u542b\u786e\u8ba4\u4ee3\u7801\u7684\u77ed\u4fe1\u3002\u5728\u4e0b\u65b9\u8f93\u5165\u4ee3\u7801\u4ee5\u65b9\u4fbf\u6211\u4eec\u4ece\u60a8\u7684\u5e10\u6237\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u6210\u529f\uff01<\/div>\r\n\t\t\t\t\t\u6211\u4eec\u5df2\u4ece\u60a8\u7684\u5e10\u6237\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\u3002\u4e0b\u4e00\u6b21\u60a8\u767b\u5f55\u65f6\uff0c\u60a8\u9700\u8981\u8f93\u5165\u53d1\u9001\u5230\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u7684 Steam \u4ee4\u724c\u9a8c\u8bc1\u7801\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u6210\u529f\uff01<\/div>\r\n\t\t\t\t\t\u60a8\u53ef\u4ee5\u4f7f\u7528\u8be5\u8bbe\u5907\u4e3a\u60a8\u7684\u5e10\u6237\u83b7\u53d6\u624b\u673a\u9a8c\u8bc1\u7801\u3002\u6b64\u524d\u4e3a\u60a8\u7684\u5e10\u6237\u63d0\u4f9b\u9a8c\u8bc1\u7801\u7684\u4efb\u4f55\u5176\u4ed6\u8bbe\u5907\u5c06\u4e0d\u518d\u62e5\u6709\u64cd\u4f5c\u6743\u9650\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u60a8\u662f\u5426\u62e5\u6709\u6062\u590d\u7801\uff1f<\/div>\r\n\t\t\t\t\t\u60a8\u6ca1\u6709\u4e0e Steam \u5e10\u6237\u76f8\u5173\u8054\u7684\u624b\u673a\u53f7\u7801\uff0c\u56e0\u4e3a\u6211\u4eec\u65e0\u6cd5\u901a\u8fc7\u77ed\u4fe1\u9a8c\u8bc1\u5e10\u6237\u7684\u6240\u6709\u6743\u3002\u60a8\u662f\u5426\u62e5\u6709\u5728\u6dfb\u52a0\u624b\u673a\u9a8c\u8bc1\u5668\u65f6\u8bb0\u4e0b\u7684\u6062\u590d\u7801\uff1f\u6062\u590d\u7801\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8f93\u5165\u60a8\u7684\u6062\u590d\u7801\r\n<\/div>\r\n\t\t\t\t\t\u8bf7\u5728\u4e0b\u65b9\u7684\u5bf9\u8bdd\u6846\u5185\u8f93\u5165\u60a8\u7684\u6062\u590d\u7801\u3002\u6062\u590d\u7801\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u54ce\u5440\uff01<\/div>\r\n\t\t\t\t\t\u62b1\u6b49\uff0c\u60a8\u6240\u8f93\u5165\u7684\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\u2026<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8ba9\u6211\u4eec\u6765\u5e2e\u60a8\u5427\uff01<\/div>\r\n\t\t\t\t\t\u5982\u679c\u60a8\u65e0\u6cd5\u4f7f\u7528\u60a8\u7684\u79fb\u52a8\u8bbe\u5907\u3001\u4e0e\u5e10\u6237\u5173\u8054\u7684\u624b\u673a\u53f7\u7801\uff0c\u5e76\u4e14\u6ca1\u6709\u5728\u60a8\u6dfb\u52a0\u624b\u673a\u9a8c\u8bc1\u5668\u65f6\u8bb0\u4e0b\u6062\u590d\u7801\uff0c\u90a3\u4e48\u8bf7\u8054\u7cfb Steam \u5ba2\u670d\u534f\u52a9\u60a8\u6062\u590d\u5e10\u6237\u7684\u8bbf\u95ee\u6743\u9650\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8ba9\u6211\u4eec\u6765\u5e2e\u60a8\u5427\uff01<\/div>\r\n\t\t\t\t\t\u5f88\u62b1\u6b49\u60a8\u9047\u5230\u95ee\u9898\u3002\u6211\u4eec\u77e5\u9053 Steam \u5e10\u6237\u5bf9\u60a8\u6765\u8bf4\u975e\u5e38\u73cd\u8d35\uff0c\u6211\u4eec\u81f4\u529b\u4e8e\u9632\u6b62\u60a8\u7684\u5e10\u6237\u906d\u5230\u975e\u6cd5\u76d7\u7528\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u62b1\u6b49\uff01<\/div>\r\n\t\t\t\t\t\u5728\u5904\u7406\u60a8\u7684\u8bf7\u6c42\u65f6\u9047\u5230\u9519\u8bef\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\u8f93\u5165\u663e\u793a\u5728 Steam \u624b\u673a\u5e94\u7528\u4e0a\u7684\u6700\u65b0\u9a8c\u8bc1\u7801\uff1a\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\u5982\u679c\u60a8\u65e0\u6cd5\u4f7f\u7528\u79fb\u52a8\u8bbe\u5907\uff0c\u6216\u662f\u7531\u4e8e\u5378\u8f7d\u4e86 Steam \u5e94\u7528\u800c\u65e0\u6cd5\u63a5\u6536\u4ee3\u7801\uff0c\u90a3\u4e48\u60a8\u53ef\u4ee5\u4ece\u5e10\u6237\u4e2d\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\u3002\u8fd9\u5c06\u51cf\u5c11\u60a8\u5e10\u6237\u7684\u5b89\u5168\uff0c\u56e0\u6b64\u60a8\u5e94\u8be5\u5728\u8fd9\u4e4b\u540e\u5c06\u624b\u673a\u9a8c\u8bc1\u5668\u6dfb\u52a0\u5230\u65b0\u7684\u79fb\u52a8\u8bbe\u5907\u4e0a\u3002\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\u8bf7\u8054\u7cfb Steam \u5ba2\u670d\u6765\u83b7\u5f97\u6211\u4eec\u5de5\u4f5c\u4eba\u5458\u7684\u5e2e\u52a9\u3002\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u8054\u7cfb Steam \u5ba2\u670d\u6765\u83b7\u5f97\u4f7f\u7528\u5e10\u6237\u7684\u5e2e\u52a9\t\t\t\t<\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u7684\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u65e0\u6cd5\u8bbf\u95ee\u6211\u7684\u624b\u673a\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u6211\u60f3\u518d\u8bd5\u4e00\u6b21<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u7ecf\u5728\u4e0a\u9762\u91cd\u65b0\u8f93\u5165\u4e86\u6211\u7684\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u60f3\u6211\u9700\u8981 Steam \u5ba2\u670d\u7684\u63f4\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u79fb\u9664\u9a8c\u8bc1\u5668<\/div>\r\n\t\t\t\t\t\u8fd4\u56de\u4ee5\u901a\u8fc7\u7535\u5b50\u90ae\u4ef6\u63a5\u6536\u4ee3\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u4f7f\u7528\u8be5\u8bbe\u5907<\/div>\r\n\t\t\t\t\t\u5e76\u5728\u8be5\u5e94\u7528\u4e0a\u83b7\u53d6\u9a8c\u8bc1\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u786e\u5b9a\uff01<\/div>\r\n\t\t\t\t\t\u7ed9\u6211\u53d1\u77ed\u4fe1<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u6211\u505a\u4e0d\u5230<\/div>\r\n\t\t\t\t\t\u56e0\u4e3a\u6211\u5df2\u65e0\u6cd5\u4f7f\u7528\u8be5\u624b\u673a\u53f7\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u5728\u4e0a\u65b9\u8f93\u5165\u4ee3\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u6ca1\u6536\u5230\u77ed\u4fe1<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u7ecf\u91cd\u65b0\u8f93\u5165\u4e86\u4ee3\u7801\u3002\u518d\u8bd5\u4e00\u6b21\u3002<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u6ca1\u6536\u5230\u77ed\u4fe1<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u767b\u5f55<\/div>\r\n\t\t\t\t\t\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u767b\u5f55<\/div>\r\n\t\t\t\t\t\u5230 Steam \u624b\u673a\u5e94\u7528<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u662f<\/div>\r\n\t\t\t\t\t\u6211\u6709\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u7684\u6062\u590d\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u5426<\/div>\r\n\t\t\t\t\t\u6211\u6ca1\u6709\u4f60\u4eec\u8bf4\u7684\u4ee3\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u7684\u6062\u590d\u7801<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u89c9\u5f97\u81ea\u5df1\u9700\u8981 Steam \u5ba2\u670d\u534f\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u63d0\u4ea4<\/div>\r\n\t\t\t\t\t\u6211\u5df2\u7ecf\u91cd\u65b0\u8f93\u5165\u4e86\u4ee3\u7801\u3002\u518d\u8bd5\u4e00\u6b21\u3002<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u89c9\u5f97\u81ea\u5df1\u9700\u8981 Steam \u5ba2\u670d\u534f\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u8bf7\u6c42\u534f\u52a9<\/div>\r\n\t\t\t\t\t\u6211\u89c9\u5f97\u81ea\u5df1\u9700\u8981 Steam \u5ba2\u670d\u534f\u52a9\u2026<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\u8054\u7cfb\u6211\u4eec<\/div>\r\n\t\t\t\t\t\u4ee5\u83b7\u5f97\u5e10\u6237\u8bbf\u95ee\u7684\u534f\u52a9<\/div>\r\n\t\t\t\t<\/a>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\r\n\t\t\t\r\n\t\t<\/div>\r\n\t\t<\/form>\r\n\t<\/div>\r\n<\/div>\r\n" ); $J('body').append( CLoginPromptManager.sm_$Modals ); } else { CLoginPromptManager.sm_$Modals = $modals; } }; CLoginPromptManager.prototype.GetModalContent = function( strModalType ) { var $ModalContent = CLoginPromptManager.sm_$Modals.find( '.login_modal.' + strModalType ); if ( this.m_bIsMobileSteamClient ) { var manager = this; $ModalContent.find('a[data-externallink]' ).each( function() { if ( !manager.m_bMobileClientSupportsPostMessage ) $J(this).attr( 'href', 'steammobile://openexternalurl?url=' + $J(this).attr('href') ); else $J(this).on('click', function( e ) { e.preventDefault(); window.postMessage( JSON.stringify( {action: "openexternalurl", url: $J(this).attr('href') } ), window.location ); }); }); } return $ModalContent; };
\u6211\u4eec\u5df2\u4ece\u60a8\u7684\u5e10\u6237\u79fb\u9664\u624b\u673a\u9a8c\u8bc1\u5668\u3002\u4e0b\u4e00\u6b21\u60a8\u767b\u5f55\u65f6\uff0c\u60a8\u9700\u8981\u8f93\u5165\u53d1\u9001\u5230\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u7684 Steam \u4ee4\u724c\u9a8c\u8bc1\u7801\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t
\u60a8\u53ef\u4ee5\u4f7f\u7528\u8be5\u8bbe\u5907\u4e3a\u60a8\u7684\u5e10\u6237\u83b7\u53d6\u624b\u673a\u9a8c\u8bc1\u7801\u3002\u6b64\u524d\u4e3a\u60a8\u7684\u5e10\u6237\u63d0\u4f9b\u9a8c\u8bc1\u7801\u7684\u4efb\u4f55\u5176\u4ed6\u8bbe\u5907\u5c06\u4e0d\u518d\u62e5\u6709\u64cd\u4f5c\u6743\u9650\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t
\u60a8\u6ca1\u6709\u4e0e Steam \u5e10\u6237\u76f8\u5173\u8054\u7684\u624b\u673a\u53f7\u7801\uff0c\u56e0\u4e3a\u6211\u4eec\u65e0\u6cd5\u901a\u8fc7\u77ed\u4fe1\u9a8c\u8bc1\u5e10\u6237\u7684\u6240\u6709\u6743\u3002\u60a8\u662f\u5426\u62e5\u6709\u5728\u6dfb\u52a0\u624b\u673a\u9a8c\u8bc1\u5668\u65f6\u8bb0\u4e0b\u7684\u6062\u590d\u7801\uff1f\u6062\u590d\u7801\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t
\u8bf7\u5728\u4e0b\u65b9\u7684\u5bf9\u8bdd\u6846\u5185\u8f93\u5165\u60a8\u7684\u6062\u590d\u7801\u3002\u6062\u590d\u7801\u4ee5\u5b57\u6bcd\u201cR\u201d\u5f00\u5934\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t
\u5982\u679c\u60a8\u65e0\u6cd5\u4f7f\u7528\u60a8\u7684\u79fb\u52a8\u8bbe\u5907\u3001\u4e0e\u5e10\u6237\u5173\u8054\u7684\u624b\u673a\u53f7\u7801\uff0c\u5e76\u4e14\u6ca1\u6709\u5728\u60a8\u6dfb\u52a0\u624b\u673a\u9a8c\u8bc1\u5668\u65f6\u8bb0\u4e0b\u6062\u590d\u7801\uff0c\u90a3\u4e48\u8bf7\u8054\u7cfb Steam \u5ba2\u670d\u534f\u52a9\u60a8\u6062\u590d\u5e10\u6237\u7684\u8bbf\u95ee\u6743\u9650\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t
\u5728\u5904\u7406\u60a8\u7684\u8bf7\u6c42\u65f6\u9047\u5230\u9519\u8bef\u3002<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t