2017-07-21 6 views
0

Ich versuche, Änderungen an einem Spiel zu entwickeln. Die Sache ist, das Spiel ist bereits kompiliert und die Entwickler bevorzugen, das Spiel nicht zu dekompilieren (für die Zeit). Wegen der Kompilierung bekomme ich jedes Mal, wenn ich versuche, JQuery oder Node.js zu laden, eine Version, die den Fehler "dass ein Schlüssel bereits im Wörterbuch existiert" erhält. Die Sache ist alles ohne Node.js oder JQuery.js.Zugriff auf ein XML von Javascript ohne Node-Ohne JQuery

Was ich versuche zu erreichen, ist, dem Spiel einige Funktionen hinzuzufügen, die leider nicht über die API-Funktion des Spiels selbst verfügbar sind. Ich möchte in der Lage sein, Zugriff auf Daten zu erhalten. Inside. XML-Dateien für Gegenstände/Waffen/Geräte/Motoren verwendet. Ich habe so ziemlich alles ausprobiert, was ich auf Stackexchange finden konnte, mit dem, was ich suchte, was Node und JQuery war. Es tut mir leid, wenn ihr denkt, das ist eine doppelte Frage. Weil es nicht ist. Ich kann weder Node.js noch JQuery verwenden. Was könnte ich sonst noch versuchen? kann mir bitte jemand helfen.

Ich bin ein wenig zu programmieren mit nur 1 Jahr Erfahrung in C# und Javascript. Tut mir leid, wenn sich das für euch wirklich albern anfühlt.

+0

Sie scheinen an NodeJS und jQuery als gleichwertig zu denken. jQuery ist ein clientseitiges Framework; NodeJS ist eine serverseitige * Software *. Es gibt kein "Laden" von NodeJS in eine Anwendung. – Watilin

+0

Oh ja, ok. Nein, ich wusste nicht einmal, dass es Client- oder Server-Seite ist, tatsächlich weiß ich nicht einmal, was Client-seitige und serverseitige Software ist. Es tut mir Leid. Aber was ich weiß, ist, dass ich Marknote Parser gefunden habe und ich es richtig gelesen habe, denkend, dass es die Lösung für mein Problem sein könnte. Ich muss eine Funktion finden, die es mir ermöglicht, ein .xml-Dokument und Daten darin zu holen. – Ninekorn

+0

Ich glaube nicht, Marknote analysiert XML. Es gibt viel einfachere Möglichkeiten, das zu tun, was Sie wollen, da JS integrierte XML-Funktionen besitzt. Ich werde eine detailliertere Antwort schreiben. – Watilin

Antwort

0

Was Sie brauchen, ist Ajax. Moderne Browser bieten eine ziemlich funktionsfähige XMLHttpRequest, so dass Sie nicht einmal mehr ein Framework benötigen.

Eine wichtige Sache zu wissen: Sie werden wahrscheinlich nicht in der Lage sein, die XML-Datei mit Ajax herunterladen, wenn es auf einem entfernten Server ist, aufgrund der gleichen Herkunft-Richtlinie. Sie brauchen einen zuverlässigen Zugang dazu. Die bequemste Lösung ist, eine Kopie der Datei auf einem lokalen Server wie WAMP, XAMPP und dergleichen zu haben.

Ich werde nicht noch ein weiteres Ajax-Tutorial schreiben. Insteal Ich stelle Ihnen nur eine funktionierende minimale HTML-Seite zur Verfügung und zeige Sie auf XMLHttpRequest documentation.

<button>Request</button> 
<script> 
    'use strict'; 

    document.querySelector('button').addEventListener('click', 
    function() { 
     let req = new XMLHttpRequest(); 

     req.onload = function() { 
     if (this.responseXML) { 
      console.log(this.responseXML); 
     } 
     else { 
      console.log(this.responseText); 
     } 
     }; 

     req.open('GET', xmlURL); // xmlURL should be the location of the .xml file 
     req.send(); 
    }); 
</script> 

Wenn Sie auf die Schaltfläche klicken, wird das Skript anfordern und dann die Antwort des Servers angezeigt werden, falls vorhanden, in Ihrem Browser-Konsole. Um die Konsole zu öffnen, drücken Sie F12 und wählen Sie die Konsolenregisterkarte.

Beachten Sie, dass die responseXML-Eigenschaft nur dann ausgefüllt wird, wenn das vom Server gesendete XML-Format strikt korrekt ist. Xml Parsing in JS ist etwas knifflig, so dass Sie sich vielleicht auf responseText als Fallback verlassen können.

+0

Es ist wahrscheinlich die beste Antwort, die ich haben könnte ... Leider funktioniert es Wattin nicht. Ich habe gerade eine Antwort von den Entwicklern des Spiels erhalten, dass nur die API Scopes/Funktionen des Spiels für den Zugriff bereitgestellt wurden. Sie wissen, dass ich programmieren kann, aber ich weiß nicht alles über das Programmieren und dachte, dass mit irgendeiner Scripting-Umgebung, die ich auf irgendetwas zugreifen könnte. Ich verstehe einfach nicht, wie JavaScript-Funktionen blockiert werden können. Ich habe auch die Antwort erhalten, dass XMLHttpRequest ebenfalls blockiert ist und nicht erreichbar ist. Ich bin mir nicht sicher, was ich als nächstes versuchen soll. Scheint wie eine unmögliche Aufgabe. – Ninekorn

+0

Was meinst du "XMLHttpRequest ist blockiert"? Was hast du versucht? Haben Sie eine Fehlermeldung oder eine Meldung erhalten? – Watilin

+0

Ich habe Ihr Code-Snippet in meiner Javascript-Datei versucht. Die Konsole debuggt die Fehlermeldung "[err] Script exception!SyntaxError: Expected ein Ausdruck aber gefunden "<" stattdessen "in script.js Zeile 705. Ich kopierte eingefügt die Lösung, die Sie gaben, außer ich console.log für console.Print ändern und ändern Sie auch die URL-Adresse in Datei: // localhost/c : /VE/data/items/devices/weapon_ion_cannon.xml Es scheint, dass ich nicht die oder andere ähnliche Anmerkungen auf meiner Version von Javascript verwenden kann.Die Entwickler sagten, es war eine EcmaS5 2011. Wie ich schon sagte – Ninekorn

Verwandte Themen