asp .Net 中的 JavaScript

2023-11-29

我在我的 asp.Net 页面中收到 WebResource 错误:

var __pendingCallbacks = new Array();

Microsoft JScript runtime error: 'Array' is undefined

我不知道什么会导致这种情况发生。 Array 不是 Javascript 本身的一部分吗?任何帮助,将不胜感激。

EDIT问题是这不是我编写的代码,它内置于 asp.Net 的页面结构中。

EDIT该问题仅出现在 IE9 中且仅在 IE9 模式下运行时出现(不兼容)

Code:(这是动态生成的代码,抱歉长度太长。问题大约在中间)

function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit) {
    this.eventTarget = eventTarget;
    this.eventArgument = eventArgument;
    this.validation = validation;
    this.validationGroup = validationGroup;
    this.actionUrl = actionUrl;
    this.trackFocus = trackFocus;
    this.clientSubmit = clientSubmit;
}
function WebForm_DoPostBackWithOptions(options) {
    var validationResult = true;
    if (options.validation) {
        if (typeof(Page_ClientValidate) == 'function') {
            validationResult = Page_ClientValidate(options.validationGroup);
        }
    }
    if (validationResult) {
        if ((typeof(options.actionUrl) != "undefined") && (options.actionUrl != null) && (options.actionUrl.length > 0)) {
            theForm.action = options.actionUrl;
        }
        if (options.trackFocus) {
            var lastFocus = theForm.elements["__LASTFOCUS"];
            if ((typeof(lastFocus) != "undefined") && (lastFocus != null)) {
                if (typeof(document.activeElement) == "undefined") {
                    lastFocus.value = options.eventTarget;
                }
                else {
                    var active = document.activeElement;
                    if ((typeof(active) != "undefined") && (active != null)) {
                        if ((typeof(active.id) != "undefined") && (active.id != null) && (active.id.length > 0)) {
                            lastFocus.value = active.id;
                        }
                        else if (typeof(active.name) != "undefined") {
                            lastFocus.value = active.name;
                        }
                    }
                }
            }
        }
    }
    if (options.clientSubmit) {
        __doPostBack(options.eventTarget, options.eventArgument);
    }
}
var __pendingCallbacks = new Array();
var __synchronousCallBackIndex = -1;
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) {
    var postData = __theFormPostData +
                "__CALLBACKID=" + WebForm_EncodeCallback(eventTarget) +
                "&__CALLBACKPARAM=" + WebForm_EncodeCallback(eventArgument);
    if (theForm["__EVENTVALIDATION"]) {
        postData += "&__EVENTVALIDATION=" + WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
    }
    var xmlRequest,e;
    try {
        xmlRequest = new XMLHttpRequest();
    }
    catch(e) {
        try {
            xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e) {
        }
    }
    var setRequestHeaderMethodExists = true;
    try {
        setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader);
    }
    catch(e) {}
    var callback = new Object();
    callback.eventCallback = eventCallback;
    callback.context = context;
    callback.errorCallback = errorCallback;
    callback.async = useAsync;
    var callbackIndex = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
    if (!useAsync) {
        if (__synchronousCallBackIndex != -1) {
            __pendingCallbacks[__synchronousCallBackIndex] = null;
        }
        __synchronousCallBackIndex = callbackIndex;
    }
    if (setRequestHeaderMethodExists) {
        xmlRequest.onreadystatechange = WebForm_CallbackComplete;
        callback.xmlRequest = xmlRequest;
        xmlRequest.open("POST", theForm.action, true);
        xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
        xmlRequest.send(postData);
        return;
    }
    callback.xmlRequest = new Object();
    var callbackFrameID = "__CALLBACKFRAME" + callbackIndex;
    var xmlRequestFrame = document.frames[callbackFrameID];
    if (!xmlRequestFrame) {
        xmlRequestFrame = document.createElement("IFRAME");
        xmlRequestFrame.width = "1";
        xmlRequestFrame.height = "1";
        xmlRequestFrame.frameBorder = "0";
        xmlRequestFrame.id = callbackFrameID;
        xmlRequestFrame.name = callbackFrameID;
        xmlRequestFrame.style.position = "absolute";
        xmlRequestFrame.style.top = "-100px"
        xmlRequestFrame.style.left = "-100px";
        try {
            if (callBackFrameUrl) {
                xmlRequestFrame.src = callBackFrameUrl;
            }
        }
        catch(e) {}
        document.body.appendChild(xmlRequestFrame);
    }
    var interval = window.setInterval(function() {
        xmlRequestFrame = document.frames[callbackFrameID];
        if (xmlRequestFrame && xmlRequestFrame.document) {
            window.clearInterval(interval);
            xmlRequestFrame.document.write("");
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.write('<html><body><form method="post"><input type="hidden" name="__CALLBACKLOADSCRIPT" value="t"></form></body></html>');
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.forms[0].action = theForm.action;
            var count = __theFormPostCollection.length;
            var element;
            for (var i = 0; i < count; i++) {
                element = __theFormPostCollection[i];
                if (element) {
                    var fieldElement = xmlRequestFrame.document.createElement("INPUT");
                    fieldElement.type = "hidden";
                    fieldElement.name = element.name;
                    fieldElement.value = element.value;
                    xmlRequestFrame.document.forms[0].appendChild(fieldElement);
                }
            }
            var callbackIdFieldElement = xmlRequestFrame.document.createElement("INPUT");
            callbackIdFieldElement.type = "hidden";
            callbackIdFieldElement.name = "__CALLBACKID";
            callbackIdFieldElement.value = eventTarget;
            xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
            var callbackParamFieldElement = xmlRequestFrame.document.createElement("INPUT");
            callbackParamFieldElement.type = "hidden";
            callbackParamFieldElement.name = "__CALLBACKPARAM";
            callbackParamFieldElement.value = eventArgument;
            xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);
            if (theForm["__EVENTVALIDATION"]) {
                var callbackValidationFieldElement = xmlRequestFrame.document.createElement("INPUT");
                callbackValidationFieldElement.type = "hidden";
                callbackValidationFieldElement.name = "__EVENTVALIDATION";
                callbackValidationFieldElement.value = theForm["__EVENTVALIDATION"].value;
                xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElement);
            }
            var callbackIndexFieldElement = xmlRequestFrame.document.createElement("INPUT");
            callbackIndexFieldElement.type = "hidden";
            callbackIndexFieldElement.name = "__CALLBACKINDEX";
            callbackIndexFieldElement.value = callbackIndex;
            xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);
            xmlRequestFrame.document.forms[0].submit();
        }
    }, 10);
}

发生这种情况是因为我们有这样的设置

<collapsible panel>
    <iframe>
        <script>
        </script>
    </iframe>
</collapsible panel>

当页面加载时,显示的面板会强制在加载 JavaScript 库之前将 iframe 内的脚本拖动到 DOM 中。这似乎是针对 IE9 所做的更改。我还没有找到解决这个问题的方法,但至少我知道原因。临时解决方法是使用元标记强制页面与 IE8 兼容,以防其他人遇到此问题。

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

asp .Net 中的 JavaScript 的相关文章

随机推荐

  • 条件运算符中的“错误:需要左值作为赋值的左操作数”

    我是 C 新手 今天我学会了 运算符是 if else 语句的短类型 但是 当我执行这段代码时 int b int x b 3 lt 2 x 12 x 34 我收到错误 错误 需要左值作为赋值的左操作数 我不明白为什么会这样 我的想法是 程
  • 无法使用 golang 解码 XML,始终为空结构

    我正在尝试使用 golang 解码 XML 但以下代码给出了一个空结构 有人可以帮忙吗 当我运行以下代码时 我总是得到 packet 附源码 package main import fmt encoding xml io ioutil ty
  • Android - 构建支持附加组件的应用程序

    在 NET 上 我可以使用 反射 在运行时加载 DLL 库 这允许我为我的应用程序构建一些附加组件 在Android上 有什么方法可以执行类似的操作吗 我想制作一个附加组件 安装后可以从我的 Android 应用程序调用 我的第一个想法是建
  • android:如何使用触摸和拖动创建不同的“屏幕”和它们之间的导航?

    我可以创建与主屏幕上相同类型的导航吗 也就是说 我想要可以使用触摸和拖动在不同的屏幕之间导航 我还没有看到任何相关内容 所以是时候问一下了 哦 我正在谈论 Android 的应用程序 没有任何内置内容 但您可以使用 ViewFlipper
  • 为什么当我打开 H2 控制台时,从 Java 添加的表不可见?

    我在Java中使用H2嵌入式数据库 在创建数据库并添加一些表和数据后 它被保存为我计算机目录中的文件 但是每当我使用 H2 控制台打开此文件时 它根本不显示任何表格 为什么桌子不在那里 我在我的 java 代码中使用这个 URL jdbc
  • Java QueryDsl代码生成不生成Q类

    我正在制作一个 Spring 项目 其中我使用 QueryDsl 作为实体 我从几个月前开始接手这个项目 其中我已经有 1 个生成的类 QUser 现在我创建了一个名为 Permission 的新实体 并修改了 User 实体 当我构建项目
  • 在 Dymola 中编译大型数组

    请考虑以下小型 Modelica 模型和功能 model VectorizeDemo parameter Integer na 5 final parameter Integer nb 2 na final parameter Real a
  • 如何将数组分割成块,但让它一个接一个地填充每个数组

    我使用这个函数来创建数组块 function chunkArray myArray chunk size let results while myArray length results push myArray splice 0 chun
  • iOS5 的 Json 解析器示例

    我在 iOS5 中创建了一个应用程序 我想在网络服务器上存储和检索数据 为此我想使用 JSON 解析器 我使用了 ray wenderlich 为 ios4 提供的演示 我听说ios 5 有一些现成的框架 那么有人对此有任何想法吗 我正在使
  • 将下拉列表的值传递到文本框

    我的视图中有一个下拉列表 一个提交按钮和一个文本框 我想在单击提交按钮或 dropdownlist 的 onChange 事件时将 dropdownlist 的选定值传递到文本框 我怎样才能实现这个目标 我解决如下 div Html Dro
  • 黑客挑战 - 定位代码中的漏洞

    我的朋友最近完成了一项黑客挑战并将其发送给我 二进制文件和源代码 在向他寻求建议之前我想先在这里问一下 因为我想自己做 我一直在经历它 但我正在努力寻找漏洞 include
  • mvc:将单选按钮的值添加到集合中并保存到数据库

    我有一个带有文本框的表单和一些带有单选按钮的问题 我希望此表单的用户检查每个单选按钮 这是强制性的 我想将检查是或否的值与每个问题的名称或 ID 一起使用实体框架写入数据库 如果我知道如何将此信息收集到集合中 我可以写入数据库 请问如何将这
  • 在单元测试代码中访问部署目标

    我需要知道单元测试用例中的部署目标 有没有办法以编程方式获取 iOS 部署目标 使用 Objective C This 可作为 Xcode 构建变量使用 called IPHONEOS DEPLOYMENT TARGET 您需要做的就是创建
  • 有没有人找到一种在 SQL 数据库中存储 BSON ObjectId 值的有效方法?

    我们正在将一些数据从 MySQL 迁移到 Mongo 并为一些数据库表添加了额外的字段ObjectId迁移的数据对象的值 目前我们将它们存储为 varchar 24 latin1 general ci 效果很好 然而 为了高效存储 索引 我
  • 响应式水平滚动菜单

    http healthunit com当您从移动电话设备查看时 屏幕顶部有一个干净的水平滚动菜单 由于我正在重新设计一个包含大量导航元素的网站 我正在尝试模仿相同的功能 要求 左右滚动单击选项 居中列表项选项在空间中居中 一次只能看到一个列
  • 使用 python 的 re 模块正确解析字符串文字

    我正在尝试为我用 Python 编写的 javascript 预处理器添加一些轻量级降价支持 在大多数情况下 它是有效的 但有时我使用的正则表达式表现得有点奇怪 我认为这与原始字符串和转义序列有关 正则表达式是
  • Echarts:绘制信号的方差

    我想在图表中绘制多个信号的方差 或者基本上填充上部信号和下部信号之间的空间 是否可以创建这样的图表 我看到了置信带示例 https echarts apache org examples en editor html c confidenc
  • 向 JPanel 添加椭圆形

    这是我的简单代码 我真的不知道如何将绘制的椭圆添加到JPanel 我以前画过一些画 但我从未使用过构造函数 所以我不知道 public class Buffer extends JPanel public JFrame frame publ
  • 我在记录时崩溃:“所需条件为假:format.sampleRate == hwFormat.sampleRate”afterweb rtc 调用

    我的记录工作正常 但问题是在 WebRTC 调用之后 我崩溃了 所需条件为 false format sampleRate hwFormat sampleRate 这是我开始崩溃和 installTap 的方式 func startReco
  • asp .Net 中的 JavaScript

    我在我的 asp Net 页面中收到 WebResource 错误 var pendingCallbacks new Array Microsoft JScript runtime error Array is undefined 我不知道