How do you include a javascript file on the server side using classic ASP?
是否有人可以告诉我我名为" test.asp"的文件中的这段简单代码有什么问题?
1 2 3 4 5 6 7 8 | <script src="jquery-1.2.6.js" type="text/javascript" language="javascript" runat="server"> <script src="jquery.xml2json.js" type="text/javascript" language="javascript" runat="server"> <% var xml = '<xml><message>Hello world</message></xml>'; var json = $.xml2json(xml); alert(json.message); %> |
我收到的错误消息是Microsoft JScript运行时错误
" $"未定义
我已经尝试过XMLObjectifier和xml2json.js,并且共同的主题是我似乎无法在经典的ASP文件中执行这些javascript库。
我的理解是,ASP编写的JScript是javascript ...仅在服务器端。 那么我可以在test.asp文件中运行/引用.js文件吗?
非常感谢你! 如您所知,我的asp文件生成xml,但我想将其转换为json。
Please note - I am not ignoring the fact that JScript can be used in the browser as per the excellent info on this answer: Whats the difference between JavaScript and JScript?. This question clearly is talking about JScript in the context of the server, so from here on the term 'JScript' means the version(s) of JScript that are used in ASP or in Windows scripting
两种语言可以相同/相似(尽管请注意,JScript并非完全是JavaScript),但是它们的运行时环境可以完全不同。
您尝试使用这些库的JavaScript是一种客户端脚本语言,希望在浏览器中运行。然后,浏览器是该代码的运行时环境,提供HTML规范中列出的对象和服务(例如,固有的
JScript是一种类似于javascript的语言,在这种情况下,它希望在服务器上(或在Windows脚本环境中)运行-即在与浏览器完全不同的运行时环境中运行
因此,在这种情况下,礼貌地将其包含在服务器上的客户端javascript库的想法是错误的。您真正能够获得的最接近的东西是在服务器平台上,例如Node.js,这是"纯" JavaScript。但是即使那样也无法运行jQuery之类的客户端库,因为它们依赖于浏览器提供的运行时环境。是的,可以"伪造"和" and窃";但不是为了任何真正的利益。
停止尝试执行此操作,并将其重写为普通的客户端代码。
我已经使用JScript在现代React(节点)项目,旧版经典ASP项目和老化的Web窗体项目之间进行互操作。 Classic ASP在服务器上使用JScript的功能非常有用。我能够集中化Classic ASP,Web表单和节点(反应)项目之间的所有设置(API,连接字符串,应用程序设置等)。他们都读取相同的设置后,我删除了各自的web.config设置
Babel有一个JScript转换,可让您将代码转换为JScript的附加级别(我将ES2016-> ES5-> JScript转换为Classic ASP捆绑软件)。
include / config.js(Babel生成的设置)
1 2 3 4 5 | var config = { "cdnBaseUrl":"https://api.example.com", "apis": { ... }, ... } |
包括/ Config.asp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ' Import the global JSON object from crockford to parse JSON in VBScript server-side <script language="JScript" runat="server" src="json2.js"> ' Import global config object that can be called from JScript and VBScript interchangeably <script language="JScript" runat="server" src="config.js"> <script language="JScript" runat="server"> /** DEFINE GLOBAL FUNCTIONS THAT CAN INTEROP WITH VBSCRIPT HERE */ function requireScript(path) { var resourceUrl = config.cdnBaseUrl + path return ('<sc' + 'ript src="' + resourceUrl + '"></sc' + 'ript>') } .... |
包括/ AppHead.asp
1 2 3 4 5 | <!-- Include the settings and global helpers --> <!--#include virtual="/include/Config.asp"--> <!-- Build script tags in head that point to the correct CDN base url --> <%=requireScript("/assets/react-client.js")%> |
为所有设置编写适配器将是一种折磨(使用VBScript解析XML / JSON很糟糕)。