【问题标题】:Pass xml config file into javascript library via require.js?通过 require.js 将 xml 配置文件传递到 javascript 库中?
【发布时间】:2013-07-31 04:10:16
【问题描述】:

我收到了来自供应商的第三方 javascript 库,其中包含使用以下脚本的集成说明:

    <script type="text/javascript"  src="../Scripts/thirdpartyscript.js?config.xml"></script>

注意 src 标记末尾的“?config.xml”位。它是一个 xml 文件,其中包含库解析和操作的数据。删除参数会导致库在尝试解析 null xml 响应对象时引发异常。

Require.js 不希望末尾有“?config.xml”参数。它将其视为 lib 文件名的一部分。

重新连接第三方代码将不是一个易于管理的选项。无法删除代码,因为它是系统的一个组成部分。我不想转储 require.js,因为该应用程序是 SPA 主干,而 require.js 是整个主干代码库的模块/依赖项管理器。

任何可行的选择?

为清晰起见,已修改原始帖子:

【问题讨论】:

  • 显示您尝试让 RequireJS 加载脚本的配置会很有用。

标签: javascript parameters path requirejs


【解决方案1】:

您可能误解了脚本标签的“src”属性是如何工作的。它所做的只是包含来自给定 URL 的脚本。如果提供文件的 Web 服务器对查询字符串 (?config.xml) 不执行任何操作,则它会被忽略。请记住,“脚本”标签只是在您的页面中包含代码并执行加载的代码,就是这样。除了它只是 URL 的一部分之外,脚本标签甚至无法理解您所说的“?config.xml”是什么意思,并且只是从您提供的 URL 加载脚本。

您可能需要做的是包含脚本文件并在该脚本中调用一些函数或对象/函数,并将 XML 文件作为参数。该脚本也许还可以从 Web 服务器检索该 XML 文件(通过 ajax,像 jQuery 这样的库可以提供帮助),然后处理该 XML。但是,这样做的过程可能超出了我的答案所能提供的范围,而无需编写小型“中篇小说”:)

简短回答:“?config.xml”,就加载的脚本而言,什么都不做。

【讨论】:

  • 感谢您花时间回复。
  • 感谢您花时间回复。让我用更多的细节来澄清。 "?config.xml" 肯定会有所作为。我包含的库是 Akamai 的第三方产品。我无权修改他们配置软件的方式。我已经和他们谈过了,但没有在 src 包含中提供“?config.xml”参数会破坏他们的代码。开始解析 null xml 请求对象时发生 javascript 异常。我在这里通过删除和替换参数进行了验证。所以不知何故我需要包含这个参数。我可以在常规脚本标签中做到这一点,它可以工作
  • 我明白了。那么是否有您在 Akamai 上配置的 Akami 在其脚本中使用的 .xml 文件?我有一种感觉,他们处理 XML 文件并在 他们的 服务器上按需生成自定义 JavaScript 文件。
  • 好的,现在我看到了问题... require JS 导致了这个问题 - 我觉得完全是 derpy :) 抱歉!
  • 没问题。感谢任何回应。到目前为止,我还没有对此进行 require.js 的修复。 Akamai 确实响应了手动加载数据的选项,从而消除了对查询字符串参数的需求。所以我已经解决了,但是 require.js 用户的查询字符串参数的问题仍然是开放的。不确定我是否应该关闭这个问题?还有人需要吗?不确定。
猜你喜欢
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多