- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我今天一直在玩弄 Mootools 1.3 服务器端。它真的很不错,经过一些抨击才得到它经典的 ASP 友好但仍然充满善良 (tm)。
在向 friend 展示 Mootools 的功能时,我遇到了一个奇怪的 ASP 相关错误,这是我以前从未见过的。
Microsoft JScript runtime error '800a138f'
'Response.WriteBlock(...)' is null or not an object
导致它的代码是 Mootools 时髦的“forEach”助手之一:
[1,2,3].each( function( i ) {
Response.Write( "<b>" + i + "</b>, " );
});
它真的一点都不喜欢这段代码。我注释掉了 Response.Write 并有一个空 block ,它仍然抛出错误。很奇怪。我知道 ASP 做了一些优化魔术来将 html block 和 asp block 组合在一起(因此有 Reponse.WriteBlock 注释)但不确定为什么这适用于此。
但是这段代码会运行:
var fruits = [];
fruits.push( "apples" );
fruits.push( "oranges" );
fruits.each( function( fruit ) {
Response.Write( "<b>" + fruit + "</b>, " );
});
// As will this
var nums = [ 1,2,3,4,5 ];
nums.each( function(i) {
Response.Write( "<b>" + i + "</b>" );
});
有没有人知道是什么导致了这个错误?我会继续挖掘,但想知道是否有任何 JScript 伙伴可以阐明一些问题。可能只是 ASP 的怪癖?
[更新]
Wierdness 继续,设法让它工作,但它似乎取决于 each 循环之前发生的事情。所以回顾一下这是行不通的:
<%
[ 1,2,3,4,5 ].each( function(i) {
Response.Write( "<b>" + i + "</b>" );
});
%>
但是这样做(注意只是在它上面添加了 var 行):
<%
var something = 1;
[ 1,2,3,4,5 ].each( function(i) {
Response.Write( "<b>" + i + "</b>" );
});
%>
确实很奇怪。一定是与 ASP 处理 block 的方式有关,也许在解析器中有一条关于 block 以(它会认为是相当随机的)数组语句开头的规则,或者至少它没有被编程为期望我这样做那(我不认为他们想象服务器端 mootools 的方式回到什么时候)!尽管如此,我仍然想要一个深入的解释,这样我就可以更好地避免它。
最佳答案
尝试将您的代码更改为...
<%
;[ 1,2,3,4,5 ].each( function(i) {
Response.Write( "<b>" + i + "</b>" );
});
%>
这只是一种预感。
通常,以 (
或 [
开始一行,尤其是一个文件,而没有自己的分号被认为是不好的做法。主要原因与连接有关。 ..
例如
//foo.js
1 + 1 == 2
//bar.js
("lol, string")
//foo.js + bar.js
1 + 1 == 2("lol, string") // TypeError: number is not a function
因为 bar.js
没有办法知道最终会在它之前包含什么,它应该总是在 (
即
//bar.js
;("lol, string")
//foo.js + bar.js
1 + 1 == 2;("lol, string") // SUCCESS!!1!
我的预感是 ASP 领域正在发生类似的奇怪事情。
由于我们无法访问 JScript 的源代码或 ASP 框架本身,因此无法确定发生了什么。
关于asp-classic - 在服务器端 ASP JScript 中使用 mootools 时出现 Response.WriteBlock 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4096436/
我想知道是否有人可以帮助我,因为我对我认为导致简单错误的简单原因视而不见。 我有这个代码: doRound1(x1) denom1 = 5 y1 = denom1 - x1 mod deno
我有以下代码,注释详细说明了会发生什么: averageNum = myArray2(0) 'assign variable response.write(TypeName(averageNum)&"
我有以下脚本,它在本地运行良好(Windows 10 IIS、Windows 2003 Server),但不适用于我们的托管服务器(Windows 2003 Server)。任何超过 4mb 的下载都
ASP Classic 是否具有等同于 PHP 的“包含一次”功能的功能? 最佳答案 我知道这是一个古老的话题,但我想如果有人感兴趣,我会加上我的两分钱。 我编写了一个函数,它完全符合您的要求:无论调
我在Windows 7中运行IIS 7.5,并且已经进入“打开或关闭Windows功能”并在“Internet信息服务/万维网服务/应用程序开发功能”中启用了ASP。一旦做完,我开始收到一个HTTP
我正在尝试从 MS Access 数据库创建一个 ID(主键和自动增量)以用作登录密码。但我收到此错误: Microsoft OLE DB Provider for ODBC Drivers erro
我已经为 Classic ASP(VBScript) + firephp 编写了一个开源调试类,想知道是否可以获取传递给函数的变量的名称?我进行了搜索,但似乎找不到任何技巧来执行此操作。 例子 代码:
我正在尝试从 MS Access 数据库中创建一个 ID(主键和自动增量)以用作登录密码。但是我收到了这个错误: Microsoft OLE DB Provider for ODBC Drivers
我有一个结帐表格,其中产品的数量可以是“n”。那么我如何知道表单中有多少输入字段并从中获取输入呢? 谢谢 最佳答案 如果它是一组单个控件 - 比如说代表项目的可变数量的复选框 - 解决方案非常简单。对
我刚刚审查了一些旧代码并发现了以下内容(在 foo.asp 中): Const ASP_FILENAME = "foo.asp" ' TODO: Update this to the name of
关注 my last question有谁知道如何在经典 ASP 的应用程序范围内使用字典对象?您不能使用 Scripting.Dictionary - 如果您尝试使用,您将看到类似以下内容: App
我的意思是,像 php'h 包括... 就像是 my_file_to_be_included = "include_me.asp" --> 就我目前所见,有几种选择,但每一种都有某种缺点......
我在哪里可以找到“经典”ASP 代码的编辑器? 最佳答案 如果我要进行大量更改,我总是使用 VS2008(支持智能感知、高亮显示和来自 SP1 的调试),Notepad2对于快速(没有智能感知,只有突
例如,我如何运行下面的 me.test? myvar = 'test' me.myvar ASP 查找方法“myvar”但没有找到。在 PHP 中我可以简单地说 $me->$myvar 但 ASP 的
这是要点: 我有一个我想用asp打的电话,我不关心响应。我只想触发调用,我不希望页面等待响应。根据文档,它应该看起来像这样: dim xmlhttp : set xmlhttp = Server.Cr
示例代码: Dim myObject Set myObject = JSON.parse(someJsonResponseFromTheServer) myFunction(myObject.s
据我所知,VBScript/Classic ASP 中唯一的预处理指令是#include。我不知道这是否是正式名称,但我基本上是在寻找可以在通用 VBScript 之前执行代码或其他指令的代码。 VB
据我所知,VBScript/Classic ASP 中唯一的预处理指令是#include。我不知道这是否是正式名称,但我基本上是在寻找可以在通用 VBScript 之前执行代码或其他指令的代码。 VB
我必须维护一个 ASP 3.0 网站... 我想保护sql语句。 我可以使用此代码保护的选择语句: set cmd = Server.createObject("adodb.command") cmd
我正在使用 WebMatrix 中托管的经典 ASP Web 应用程序。有没有办法调试托管在 WebMatrix 中的网站? 最佳答案 WebMatrix 通过调试工具提供很少(没有)。您可以 Res
我是一名优秀的程序员,十分优秀!