在经典 ASP / Javascript 中将对象插入全局范围

2023-12-15

这个问题与经典 ASP 中的 Javascript 有关。它与浏览器中运行的 Javascript 无关。

设计为可重用的 JS 模块的典型构造如下:

(function(globalScope) {
   ... declarations here...
}(this));

这允许代码在语法上被封装,以允许运行时解析器/编译器进行检查。它还提供范围管理,以便在花括号内声明的变量和函数在外部不可见。

另一种典型的构造是通过赋值将属于内部作用域的对象或函数“导出”到外部作用域,如下所示:

(function(globalScope) {
   var data = ['Alpha', 'Beta', 'Gamma'];

   function helper(a) { .... } 

   function search(d) { .... }

   // "export" a function so it is externally visible
   globalScope.searchData = search; 

}(this));

// typeof this.searchData == "function" 
// typeof this.data == "undefined"
// typeof this.helper == "undefined"
// typeof this.search == "undefined"

这都是非常典型的。

当在经典 ASP 中使用这种构造时(注意:服务器端 javascript!!),JS 引擎会抛出异常。我收到 500 错误。

Why?

在经典 ASP 中,我可以使用作用域构造并将内容“导出”到全局作用域吗?

在浏览器运行时,“this”的计算结果为“window”。在服务器端经典 ASP 运行时中,全局“this”的值是什么?是否可以为“this”分配新属性?


我不确定底层类型是什么,但它将是一些 COM 对象。除非这个 COM 对象实现IDispatchEx您将无法为其分配任意属性。 MSHTML 中的 COM 对象就是这种情况,它是 Internet Explorer 的 DHTML 实现的基础。然而 ASP 似乎没有提供相同的功能。

有一个解决方法,假设参数globalScope确实预计只会是全球范围:

(function() { 
   var data = ['Alpha', 'Beta', 'Gamma']; 

   function helper(a) { .... }  

   function search(d) { .... } 

   // "export" a function so it is externally visible 
   searchData = search;  

})();   // Please not also small syntatic correction of your original code.

随着caveat该财产searchData不得已存在于作用域链上游的任何位置。在这种情况下,JScript 将在全局级别创建它。

名字searchData确实成为活动脚本中的命名项(即,如果您还要在同一页面中包含一些 VBScript,VBScript 也可以看到searchData)。此外this.searchData现在已分配。看起来无论全局对象是什么,它都允许将成员名称的后期绑定解析映射到活动脚本对象本身的命名项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在经典 ASP / Javascript 中将对象插入全局范围 的相关文章

  • 无法在 Web 服务器上启动调试。底层连接已关闭。连接意外关闭

    突然间 我的本地 Web 服务器 Win7 64 位 IIS 7 5 出现以下错误 我已经在本地卸载并重新安装了 IIS 但没有解决问题 IIS设置为自动启动 可以看到服务已经成功启动 重新启动后 如果我进入 IIS 并单击启动网站 我会收
  • IIS 上的 Django:调试由于大文件上传上的 FastCGI 请求超时而导致的 IIS 错误

    我正在尝试在带有 IIS 10 和 FastCGI 的 Windows 10 计算机上托管 Django Web 应用程序 虽然到目前为止一切都运行良好 但我在上传较大文件 120MB 时遇到了某些 POST 请求的问题 即 HTTP 50
  • IIS7 和 MVC 2 出现 403.14 错误 已尝试了所有建议的修复方法

    ASP Net 4 框架上的 MVC 2 项目 我尝试在 IIS7 上设置它 但出现 403 14 错误 是的 我尝试了微软的修复 它启用了目录浏览 但与我想要的完全错误 是的 我运行了 aspnet regiis i 不 它仍然无法正常工
  • 如何使用服务器端vbscript获取图像宽度? ASP经典

    几天来我一直在尝试找到一种方法来获取驻留在我们服务器上的 png 文件的图像宽度 我正在尝试读取文件的前 24 个字节并解析出字节 17 20 的宽度 我在网上找到了几种例程 但都没有成功 奇怪的是 我似乎得到了从十六进制解码到十进制的字节
  • 如何使用PowerShell脚本远程启动/停止IIS 6.0/7.0?

    我有两台服务器服务器 A 和服务器 B 我想使用 Powershell 脚本从服务器 B 远程停止服务器 A 最简单的方法之一就是使用命令行执行PsExec http www microsoft com technet sysinterna
  • Web API GET 请求中的电子邮件地址

    我正在开发在 ASP NET Web API 中实现的 REST API 我们想要支持的一个场景是执行GET通过电子邮件地址请求一些用户信息 理想情况下 客户应该能够执行以下操作 GET api v1 users email your em
  • 使用 VBScript 经典 ASP 中的对象集合?

    我有一个名为 Company 的类 它具有 CompanyName CompanyCode 和 IsActive 等属性 该类是用 VBScript 编写的 我想在经典 ASP 中使用 VBScript 存储 Company 对象的集合 这
  • 如何让 shell_exec 在 IIS 6.0 上运行

    问题 我有一个 PHP 脚本 它使用shell exec运行 pdf 到文本转换器 为了简化问题 我创建了一个简短的脚本 使用shell exec只是回显的输出dir命令 当我在 Apache 服务器上运行它时 一切都按预期运行 当我切换到
  • 如何从Windows服务公开restful接口?

    我编写了一个公开restful接口的wcf服务 现在我使用iis作为wcf服务主机 除了暴露其余部分之外 我还需要对我的应用程序执行一些操作 为此 我必须将我的应用程序作为 Windows 服务运行 但是使用iis作为主机不会使我的wcf服
  • IIS 中一次请求上传大文件时的内存使用情况

    我要使用 IIS7 8 在 ASP NET MVC 中实现一个网站 我需要上传大文件 几 GB 我知道我可以更改 web config 中的配置以上传最多 4GB 的文件 但我有点担心内存使用情况 如果我在一次请求中上传了一个3GB的文件
  • Office 365 和经典 ASP 与 VB.net SMTP 设置

    有几个关于经典 ASP 和 Office 365 的问题 但似乎没有一个问题可以回答我的特定场景 所以这里是 我在 Office 365 上设置了一个电子邮件帐户 并尝试使用以下代码进行 SMTP 测试 Dim ObjSendMail ma
  • 将 Web 场迁移到 ASP.NET 运行时版本 4,同时保持会话

    我们已将 Web 应用程序从 net 运行时 2 v 3 5 迁移到 net 运行时 4 v 4 5 我有一个部署问题 我们的 sessionstate 服务器是一个 stateserver 并在单独的服务器上运行框架 2 中的 aspne
  • 使用 Azure AD 身份验证保护的 WebAPI 无法在 IIS 上工作,但在使用 Visual Studio 的 IIS Express 上工作正常

    我正在开发一个使用 Asp Net WebAPI 调用的 AnguarJS SPA 应用程序 我已在 Azure AD 上注册了客户端和后端应用程序 我的客户端 Web 应用程序已注册 详细信息如下 登录网址 http 本地主机 93 ht
  • 将 SQL 变量传递给 ASP

    这里只是有点语法问题 我正在使用 SQL 和 ASP 并且到目前为止有以下代码 set rs Server CreateObject ADODB recordset rs Open Select from Questions conn sq
  • IIS7集成管道:maxConcurrentRequestsPerCPU和requestsQueueLimit设置之间的交互

    首先 这里对 IIS7 HTTP 请求生命周期以及影响性能的各种设置进行了很好的概述 IIS 7 0 和 6 0 上的 ASP NET 线程使用情况 http blogs msdn com b tmarq archive 2007 07 2
  • 对注册表项“全局”的访问被拒绝

    在向 defaultAppPool 用户授予权限时 我收到消息 没有这样的全局用户或组 DefaultAppPool 有人能帮我一下吗 但是 使用命令 net localgroup Performance Monitor Users Def
  • 静默地将 api 资源移动到另一个 url

    我已经用 WepApi 2 编写的 api 与主网站紧密结合 我决定将其与另一个网络应用程序解耦 以使事情更加隔离 我遵循了这样的步骤 将所有 API 控制器提取到另一个项目 创建属性以将当前使用旧 URL 的所有用户重定向到新 URL 由
  • cryptoTicket 参数的值无效

    我最近修改了我公司 eComm 站点的登录名 以具有 保持登录状态 功能 主要更改是使表单身份验证 cookie 对这些用户持久存在 更改发布后 我开始在日志中看到此异常 Invalid value for encryptedTicket
  • 客户端已断开连接

    我经常收到客户端已断开连接的消息 我不使用负载平衡 仅使用一个 IIS 服务器 我需要知道是什么原因造成的以及如何解决它 这是异常信息 Type System Web HttpException Message The client dis
  • 经典 ASP 网站偶尔会挂起

    我们在 IIS 7 5 上有一个经典的 ASP 网站 用户随机遇到响应缓慢的情况 发生这种情况时 用户在几分钟内无法执行任何操作 这非常令人沮丧 例如 我可以打开主页 然后在类别中单击几次 然后网站就停止响应 我没有注意到网站何时停止响应的

随机推荐

  • Gson使用TypeAdapter或Json Deserializer将数据从错误列表转换为空列表

    让我们从例子开始 如果数据正确的话应该是 Beijing cities是空的 code 200 msg success data id 1 name Beijing cities id 2 name Guangdong cities id
  • 组织小型公用事业功能

    经过多年的编程 我们都有一组用作辅助实用程序的小函数 我们希望它是内置的 这样我们就可以在任何项目中使用它 并让更多的人照顾 测试和优化 我有相当多的这些功能的集合 我想知道你们是如何组织它们的 你有什么建议吗 我就是这样做的 我把它放在一
  • Backbone.js fetch() JSON 到模型 get() 返回未定义

    基本上我想获取一个JSON文件并将其存储在模型中 但是 当我尝试通过访问属性时get 它返回未定义 假设 JSON 文件有一个游戏数组 其中包含具有某些属性的对象 这并不重要 只是想将它们保存在模型中并访问它们 所以我正在做这样的事情 va
  • 使用 NULL 时的查询性能

    我想知道 NULL 值如何影响 SQL Server 2005 中的查询性能 我有一个与此类似的表 简化 ID ImportantData QuickPickOrder 1 Some Text NULL 2 Other Text 3 3 a
  • NHibernate 惰性属性行为?

    我一直在尝试让 NHibernate 参与我在工作场所进行的一个项目的开发 由于我必须非常重视性能 因此我一直在对包含数千条记录的现有项目表运行概念验证压力测试 所有这些记录都包含一个大型文本列 然而 当选择这些记录的集合时 select语
  • 在 DP Java 中以编程方式设置 ImageView 大小 [重复]

    这个问题在这里已经有答案了 我想设置一个的宽度和高度ImageView in Android The ImageView不存在于XML 它是在这里创建的 public void setImageView int i Integer d Li
  • 如何更改 JOptionPane 内的按钮背景

    我想知道是否有人知道是否可以更改按钮内的背景颜色JOptionPane 我知道如何改变整个JOptionPane背景使用UIManager 但知道我想要的是在JOptionPane分离各个颜色 如果我能做到这一点 我会怎么做 谢谢您的帮助
  • 文件中的 JetBrains PhpStorm 红色不会消失

    我有一些红色的文件 它们绝对没有错误 所有内容都正确编译 网络也正确显示 控制台上有 0 个错误 我实际上是复制粘贴 Angular 教程 它肯定是 100 无错误 但文件仍然是红色的 我很生气 因为它看起来像一个错误 有人有解决这个问题的
  • 使用pyaudio进行录音

    我正在尝试使用 python 录制语音 我尝试使用 pyaudio 模块 它在我的计算机上保存了一个 wav 文件 但录制了静态声音 有什么建议么 import pyaudio import wave CHUNK 1024 FORMAT p
  • 将 Unicode 字符串转换为转义 ASCII 字符串

    我怎样才能转换这个字符串 This string contains the Unicode character Pi 转换成转义的 ASCII 字符串 This string contains the Unicode character P
  • Yii2:验证是否至少选择了一个复选框

    我有多个音乐版本供用户创建促销 在促销创建表单上 我们列出了所有版本 我正在使用表单模型来创建促销 其中我为我的几个输入定义了所有规则促销形式模型 我想检查用户在保存表单时是否至少选择了一个版本 但它不起作用 因为复选框是动态创建的 我该字
  • 是否可以使用边框半径实现弯曲的圆形形状?

    我不确定形状是什么 我假设它是一个弯曲的圆圈 下面是示例的屏幕截图 我希望图像的形状有点像这样 但尝试与边界半径根本不工作 有什么方法可以用CSS实现这个形状吗 这是你的答案 你可以通过 border radius 来实现 如果您想自定义它
  • Laravel 5 多语言站点,url 中带有语言前缀

    因此 我需要在具有如下网址的网站上使用多种语言 mysite en language mysite it language mysite es language 我决定在我的路线中使用前缀 如下所示 allLanguages en it e
  • colgroup 和 col 上的 Span 属性

    这些代码在逻辑上是等价的吗
  • Laravel Route 在 web.php 中存在路由顺序问题

    我在 Laravel 中遇到路由问题 我正在遵循一个教程 并且我们在 web php 文件中列出了此路由 Route get home HomeController index gt name home Route get blog Blo
  • ColdFusion 9.0.0 TLSv1.2

    我正在运行 ColdFusion 9 0 Hotfix 3 我正在尝试让 TLSv1 2 适用于 cf http 标记 我首先升级到 Java 7 Update 80 然后升级到 Java 8 Update 25 使用 Wireshark
  • 具有多个模板参数错误的模板部分特化

    当我在具有一个模板参数的类上使用模板部分特化时 我可以特化这样的方法 include
  • C++ OpenGL:调用 gluPerspective 会引发未定义的引用错误? [复制]

    这个问题在这里已经有答案了 我正在使用 FreeGLUT 尝试使用 OpenGL 在 C 中创建我的第一个立方体 我有一个问题 每当我调用 gluPerspective 时 编译器都会抛出此错误 build Debug MinGW Wind
  • 有没有办法使用 C 标准库来测量微秒的时间?

    有没有平台无关使用 C 标准库测量微秒时间的方法 不幸的是 测量的精度取决于操作系统
  • 在经典 ASP / Javascript 中将对象插入全局范围

    这个问题与经典 ASP 中的 Javascript 有关 它与浏览器中运行的 Javascript 无关 设计为可重用的 JS 模块的典型构造如下 function globalScope declarations here this 这允