【问题标题】:Getting access to a XML from javascript without Node-Without JQuery在没有 Node-Without JQuery 的情况下从 javascript 访问 XML
【发布时间】:2017-07-21 06:20:56
【问题描述】:

我正在尝试对游戏进行修改。问题是游戏已经编译好了,开发者不喜欢反编译游戏(暂时)。可能是因为编译,每次我尝试加载 JQuery 或 Node.js 时,我都会收到错误“字典中已经存在一个键”。没有 Node.js 或 JQuery.js,一切都很好。

我想要实现的是向游戏添加一些功能,遗憾的是这些功能无法通过游戏的 API 函数调用本身获得。我希望能够访问用于游戏内项目/武器/设备/引擎规范的 .xml 文件中的数据。我已经尝试了几乎所有我可以在 Stackexchange 上找到的东西,我搜索的是 Node 和 JQuery。如果你们认为这是一个重复的问题,我很抱歉。因为它不是。我不能使用 Node.js 也不能使用 JQuery。我还能尝试什么?谁能帮帮我。

我对编程有点陌生,只有 1 年的 c# 和 Javascript 经验。抱歉,如果你们觉得这真的很无聊。

【问题讨论】:

  • 您似乎认为 NodeJS 和 jQuery 是等价的。 jQuery 是一个客户端框架; NodeJS 是一个服务器端的软件。没有将 NodeJS “加载”到应用程序中这样的事情。
  • 哦,好的。不,我什至不知道它是客户端还是服务器端,事实上我什至不知道客户端和服务器端软件是什么。对不起。但我所知道的是我找到了marknote Parser,并且我正在阅读它,认为它可能是我问题的解决方案。我需要在其中找到一个函数,让我在其中获取 .xml 文档和数据。
  • 我不相信 Marknote 解析 xml。有很多更简单的方法可以做你想做的事,因为 JS 具有内置的 xml 功能。我会写一个更详细的答案。

标签: javascript jquery node.js xml


【解决方案1】:

你需要的是ajax。现代浏览器提供了相当实用的XMLHttpRequest,因此您甚至不再需要框架。

需要知道的重要一点:由于同源策略,如果 xml 文件位于远程服务器上,您很可能无法使用 ajax 下载该文件。您需要可靠地访问它。最方便的解决方案是在本地服务器上保存文件副本,例如 WAMP、XAMPP 等。

我不会再写一个 ajax 教程了。 Insteal 我只会为您提供一个可以工作的最小 HTML 页面,并将您指向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>

当您单击按钮时,脚本将请求,然后在您的浏览器控制台中显示服务器的响应(如果有)。要打开控制台,请按 F12 并选择控制台选项卡。

请注意,responseXML 属性只有在服务器发送的 xml 格式严格时才会被填充。 JS 中的 XML 解析有些繁琐,因此您可能希望依赖 responseText 作为后备。

【讨论】:

  • 这可能是我能得到的最好答案......不幸的是它不起作用 Watilin。我刚刚收到游戏开发者的回复,仅提供游戏的 API 范围/功能供访问。你知道我可以编码,但我不知道关于编程的每一个细节,并认为在任何脚本环境中我都可以访问任何东西。我只是不明白如何阻止 javascript 的功能。我还收到了 XMLHttpRequest 也被阻止并且无法访问的响应。我不确定下一步该尝试什么。似乎是一项不可能完成的任务。
  • “XMLHttpRequest 被阻止”是什么意思?你尝试了什么?您是否收到错误消息或任何指示?
  • 我已经在我的 javascript 文件中尝试了你的代码 sn-p。控制台在 script.js 第 705 行调试错误消息“[err] 脚本异常!SyntaxError: Expected an expression but found ' 或其他类似的注释。开发人员说这是 EcmaS5 2011 版本。就像我说的
  • 开发者说:正如我告诉你的那样:1)在VE中没有通过JS脚本访问文件系统。您无法访问那里的任何游戏文件。只有您可以使用 API 访问的内容或您可以手动定义的内容。 2) VE 使用 JavaScript,但仅作为非常有限的脚本语言 - 它不附带任何与浏览器相关的 API,API 实际上仅限于我们提供的内容(“范围”)+基本的 JS 语法和功能(比如数组)。我们没有实施其他任何东西。例如,没有 XMLHttpRequest,我在 MarkNote 源代码中清楚地看到它使用它。所以它不会起作用。
  • 我只是希望我能找到一种方法来破解他们用来让我整合我需要的功能的 javascript。我不知道从哪里开始。生病开始搜索相关信息。
猜你喜欢
  • 2016-02-11
  • 2013-04-01
  • 2013-07-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2014-06-01
  • 2012-07-01
  • 1970-01-01
相关资源
最近更新 更多