2017-10-30 15 views
-1

ウェブページは、バックエンドサーバーから送信されたwebsocketからデータを取り出し、ソートして、ログイン資格情報に応じてユーザーデータをHTMLに表示します。かなり基本的。すべてのonclickの後にリロードするページ

ただし、ページにマップを追加してから、クリックするたびにリロードされます。なぜ私は考えていない。

一般ログイン情報で事前にプログラムされた「ログイン」ボタンを使用すると、次のように表示されます。私は文字列の問題があるように見えますが、それは前に働いていました!どちらが私を大きく困惑させるか! "" "GameSparksErrorResponse"、 "エラー":{"メッセージ": "START_OBJECTトークンからStringのインスタンスを逆シリアル化できません"}、 "message": "Stringのインスタンスを逆シリアル化できません。 START_OBJECTトークン」、 "requestIdの": "1509395830010_1"} (インデックス):224のonMessage

ここでheader.phpのための私のコード

<?php /** 
* The Header for our theme. 
* 
* Displays all of the <head> section and everything up till <div id="main"> 
* 
*/ ?> 
<!DOCTYPE html> 
<html <?php language_attributes(); ?>> 
    <!--<![endif]--> 
    <head> 
     <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" /> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /> 
     <script type="text/javascript" 
      src='http://martialparks.com/wp-content/themes/js/gamesparks-rt.js'></script> 
     <script type='text/javascript' src='http://martialparks.com/wp-content/themes/js/gamesparks.js'></script> 
     <script type='text/javascript' 
      src='http://martialparks.com/wp-content/themes/js/gamesparks-functions.js'></script> 
     <script type='text/javascript' src='http://martialparks.com/wp-content/themes/js/hmac-sha256.js'></script> 
     <link rel="profile" href="http://gmpg.org/xfn/11" /> 
     <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /> 
     <?php 
     wp_head(); 
     ?> 
    </head> 

    <body <?php body_class() ?>> 
      <body onload="init()"> 
     <!--Start Header Wrapper--> 
     <div class="header_wrapper"> 
      <div class="header"> 
       <!--Start Container--> 
       <div class="container_24"> 
        <div class="grid_24"> 
         <div class="logo"> <a href="<?php echo esc_url(home_url()); ?>"><img src="<?php if (business_directory_get_option('business_directory_logo') != '') { ?><?php echo esc_url(business_directory_get_option('business_directory_logo')); ?><?php 
           } else { 
            echo esc_url(get_template_directory_uri() . '/images/logo.png'); 
           } 
           ?>" alt="<?php bloginfo('name'); ?>" /></a></div> 
        </div> 
        <div class="clear"></div> 
       </div> 
       <!--End Container--> 
       <div class="clear"></div> 
      </div> 
      <div class="clear"></div> 
      <!--Start Menu Wrapper--> 
      <div class="menu_wrapper"> 
       <div class="top_arc"></div> 
       <div class="menu-container"> 
        <div class="container_24"> 
         <div class="grid_24"> 
          <?php business_directory_nav(); ?> 
         </div> 
        </div> 
        <div class="clear"></div> 
       </div> 
       <div class="clear"></div> 
       <div class="bottom_arc"></div> 
      </div> 
      <!--End Container--> 
      <div class="clear"></div> 
     </div> 
     <!--End Header Wrapper--> 
     <div class="clear"></div> 
     <div class="wrapper"> 
      <!--Start Container--> 
      <div class="container_24"> 
       <div class="grid_24"> 
       <br/> 
       <br/> 
       <br/> 
       <form> 
        <input id="apiKey" type="hidden" value="A319082inSk2"/> 
        <input id="apiSecret" type="hidden" value="BNuYLYZAoDZDZyh1F7tbR8BMTiqeJbWt"/> 
        <label for="apiCredential">Api Credential</label><input id="apiCredential"/> 
        <label for="username">User Name</label><input id="username"/> 
        <label for="password">Password</label><input id="password"/> 
        <button onClick='gamesparks.registrationRequest("testuser", "testuser", "testuser", registerResponse)'>Register</button> 
        <button onClick='gamesparks.authenticationRequest(username, password, loginResponse)'>Login</button> 
        <button onClick='gamesparks.accountDetailsRequest(accountDetailsResponse)'>Account Details</button> 
        <button onClick='customEvent()'>Custom Event</button> 
        <button onClick='testRT()'>Test RT</button> 
        <i>Special thanks to the awesome team at GameSparks!</i> 
        <div id="messages"></div> 
        <br/> 
        <br/> 
       </form> 

User Name 
<div id="displayName" style="color: blue;"></div> 
Coins 
<div id="Coins" style="color: red;"></div> 
Exp 
<div id="Exp" style="color: green;"></div> 
Leader Points 
<div id="LeadP" style="color: darkgreen;"></div> 
Hero Points 
<div id="HeroP" style="color: purple;"></div> 

       <style> 
        #map { 
        height: 400px; 
        width: 100%; 
        } 
       </style> 

       <h3>Find a Park</h3> 
        <div id="map"></div> 
        <script> 
         function initMap() { 
         var Velocity = {lat: 38.308101, lng: -85.815464}; 
         var map = new google.maps.Map(document.getElementById('map'), { 
          zoom: 4, 
          center: Velocity 
         }); 
         var marker = new google.maps.Marker({ 
          position: Velocity, 
          map: map 
         }); 
         } 
        </script> 
        <script async defer 
        src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDSHCinT3IVWFCLUudbsMZV6644GNrGiwc&callback=initMap"> 
        </script> 



<script type="text/javascript"> 

    //Create a gamesparks object to be used 
    var gamesparks = new GameSparks(); 

    //Initialse the SDK 
    function init() { 
    gamesparks.initPreview({ 
     key: document.getElementById('apiKey').value, 
     secret: document.getElementById('apiSecret').value, 
     credential: document.getElementById('apiCredential').value, 
     onNonce: onNonce, 
     onInit: onInit, 
     onMessage: onMessage, 
     logger: console.log, 
    }); 
    } 

    function accountDetailsResponseCreator() { 
    var response = { 
     displayName: 'A User', 
     currencies: {Coins: 'A coin', Exp: 'A exp', LeadP: 'A lead p', HeroP: 'A hero p'} 
    } 
    accountDetailsResponse(response) 
    } 

    //Callback function to hmac sha256 a nonce with the secret. It's assumed you will have your own method of securing the secret; 
    function onNonce(nonce) { 
    return CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA256(nonce, document.getElementById('apiSecret').value)); 
    } 

    //Callback to handle when the SDK is initialised and ready to go 
    function onInit() { 
    console.log("Initialised"); 
    } 

    //Callback to handle async messages from the gamesparks platform 
    function onMessage(message) { 
    console.log("onMessage"); 
    } 

    //Response handler examples 
    function registerResponse(response) { 
    console.log(JSON.stringify(response)); 
    } 

    function loginResponse(response) { 
    console.log(JSON.stringify(response)); 
    } 

    function accountDetailsResponse(response) { 
    console.log (JSON.stringify(response));//logs the string to console 
    document.getElementById("displayName").innerHTML = (response.displayName); 
    document.getElementById("Coins").innerHTML = (response.currencies.Coins); 
    document.getElementById("Exp").innerHTML = (response.currencies.Exp); 
    document.getElementById("LeadP").innerHTML = (response.currencies.LeadP); 
    document.getElementById("HeroP").innerHTML = (response.currencies.HeroP); //returns value of name from string. I've tried doing each line with semicolons at the end, and all in a group with commas separating them. Both just give me the first variable and delete the rest. 
    } 

    function customEvent() { 
    gamesparks.sendWithData(
     "LogEventRequest", 
     { 
     eventKey: "FIRST_EVENT", 
     NUMBER_ATTR: 123, 
     STRING_ATTR: "this is a string", 
     JSON_ATTR: {key1: 12, key2: "abc"} 
     }, 
     function (response) { 
     console.log(JSON.stringify(response)); 
     } 
    ); 
    } 

    var apiKey = "2974660weiMa"; 
    var apiSecret = "p5pFVnohi5eWPYETb4aPgeMLtd95bjfJ"; 
    var myTimer = null; 
    var myRTSession = function() { 
    }; 
    var numCycles = 0; 

    myRTSession.started = false; 
    myRTSession.onPlayerConnectCB = null; 
    myRTSession.onPlayerDisconnectCB = null; 
    myRTSession.onReadyCB = null; 
    myRTSession.onPacketCB = null; 
    myRTSession.session = null; 

    myRTSession.start = function (connectToken, host, port) { 
    var index = host.indexOf(":"); 
    var theHost; 

    if (index > 0) { 
     theHost = host.slice(0, index); 
    } else { 
     theHost = host; 
    } 

    console.log(theHost + " : " + port); 

    myRTSession.session = GameSparksRT.getSession(connectToken, theHost, port, myRTSession); 
    if (myRTSession.session != null) { 
     myRTSession.started = true; 

     myRTSession.session.start(); 
    } else { 
     myRTSession.started = false; 
    } 
    }; 

    myRTSession.stop = function() { 
    myRTSession.started = false; 

    if (myRTSession.session != null) { 
     myRTSession.session.stop(); 
    } 
    }; 

    myRTSession.log = function (message) { 
    var peers = "|"; 

    for (var k in myRTSession.session.activePeers) { 
     peers = peers + myRTSession.session.activePeers[k] + "|"; 
    } 

    console.log(myRTSession.session.peerId + ": " + message + " peers:" + peers); 
    }; 

    myRTSession.onPlayerConnect = function (peerId) { 
    myRTSession.log(" OnPlayerConnect:" + peerId); 

    if (myRTSession.onPlayerConnectCB != null) { 
     myRTSession.onPlayerConnectCB(peerId); 
    } 
    }; 

    myRTSession.onPlayerDisconnect = function (peerId) { 
    myRTSession.log(" OnPlayerDisconnect:" + peerId); 

    if (myRTSession.onPlayerDisconnectCB != null) { 
     myRTSession.onPlayerDisconnectCB(peerId); 
    } 
    }; 

    myRTSession.onReady = function (ready) { 
    myRTSession.log(" OnReady:" + ready.toString()); 

    if (myRTSession.onReadyCB != null) { 
     myRTSession.onReadyCB(ready); 
    } 
    }; 

    myRTSession.onPacket = function (packet) { 
    myRTSession.log(" OnPacket:" + packet.toString()); 

    if (myRTSession.onPacketCB != null) { 
     myRTSession.onPacketCB(packet); 
    } 
    }; 

    function testRT() { 
    myRTSession.stop(); 

    gamesparks.initPreview({ 
     key: apiKey, 
     secret: apiSecret, 
     credential: "", 
     onNonce: onNonceRT, 
     onInit: onInitRT, 
     onMessage: onMessageRT, 
     logger: console.log, 
    }); 
    } 

    function onNonceRT(nonce) { 
    return CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA256(nonce, apiSecret)); 
    } 

    function onInitRT() { 
    console.log("Initialised"); 

    gamesparks.deviceAuthenticationRequest((Math.floor(Math.random() * (999 - 1)) + 1).toString(), null, null, "js", null, null, function (response) { 
     if (response.error) { 
     console.error(JSON.stringify(response.error)); 
     } else { 
     sendMatchmakingRequest(); 
     } 
    }); 
    } 

    //Callback to handle async messages from the gamesparks platform 
    function onMessageRT(message) { 
    //console.log("message " + JSON.stringify(message)); 
    if (message["@class"] === ".MatchFoundMessage") { 
     var accessToken = message["accessToken"]; 
     var host = message["host"]; 
     var port = message["port"]; 

     myRTSession.stop(); 

     if (myTimer) { 
     clearTimeout(myTimer); 
     } 

     myTimer = setInterval(mainRTLoop, 10); 

     myRTSession.start(accessToken, host, port); 
    } else if (message["@class"] === ".MatchNotFoundMessage") { 
     console.log("MATCH NOT FOUND"); 

     sendMatchmakingRequest(); 
    } 
    } 

    function sendMatchmakingRequest() { 
    gamesparks.sendWithData("MatchmakingRequest", 
     { 
     skill: 1, 
     matchShortCode: "Match_STD" 
     }, 
     function (response) { 
     if (response.error) { 
      console.error(JSON.stringify(response.error)); 
     } else { 
      console.log("Match OK..."); 
     } 
     } 
    ); 
    } 

    function mainRTLoop() { 
    if (myRTSession.started) { 
     myRTSession.session.update(); 

     var data = RTData.get(); 

     data.setLong(1, numCycles); 

     myRTSession.session.sendRTData(1, GameSparksRT.deliveryIntent.RELIABLE, data, []); 

     numCycles++; 
    } 
    } 
</script> 
</body> 
</html> 
+0

onclickハンドラでevent.preventDefault()が必要かどうかと思います。フォーム上のボタンのデフォルトアクションは、フォームが送信されている可能性があります。しかし、地図とは何が関係しているのかわかりません。 – James

答えて

0

あなたのボタンは、フォーム内にあるされています。デフォルトでは、デフォルトの動作はsubmitです。タイプ属性で明示的に型を設定しようとします。

<button type="button">Foo</button> 
+0

それに釘付け。私は彼らのタイプを設定するのは苦労しませんでした。私はその部分からを削除しました。コンソールエラーがない、再読み込み中...今、私はこのサッカーがなぜ私のサーバーと再び話していないのかを理解する必要があります。ありがとうNikish Ryumin! –

関連する問題