javascript - Mozilla 在 WebForm_DoPostBackWithOptions JavaScript 函数中获取奇怪的值

标签 javascript asp.net anchor mozilla broken-links

  1. 变量options.eventTarget从哪里来?
  2. 如果此函数是由 ASP.NET 代码生成的,我该如何为 Mozilla 修复此函数?
  3. 这个 JavaScript 函数有什么用?

当调用 anchor 标记时,Mozilla Firefox 在此函数末尾获取 options.eventTarget 的值。 “保存”( anchor 标记)按钮在 Mozilla 中不起作用,所以我想找出原因。

ExplorerPageHtmlLeft$ct...aveCancelDelete$LBuSave <===== problem

Internet Explorer 在调用 anchor 标记时在此函数末尾获取 options.eventTarget 的值。保存( anchor 标记)按钮在 Internet Explorer 中工作正常。

ExplorerPageHtmlLeft$ctl02$ctl00$SaveCancelDelete$LBuSave

下面是展开的代码,便于阅读


Mozilla Firefox 保存按钮(损坏):

<a
id="ExplorerPageHtmlLeft_ctl02_ctl00_SaveCancelDelete_LBuSave"
href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ExplorerPageHtmlLeft$ctl02$ctl00$SaveCancelDelete$LBuSave", "", true, "", "", false, true))"
onclick="javascript:encryptField(document.getElementById('ExplorerPageHtmlLeft_ctl02_ctl00_SaveCancelDelete_TxtPassword'),document.getElementById('IHHidden'));"
>
<img border="0" alt="Save" src="/images/save.gif">
</a>

Internet Explorer 保存按钮(工作正常):

<a
onclick="javascript:encryptField(document.getElementById('ExplorerPageHtmlLeft_ctl02_ctl00_SaveCancelDelete_TxtPassword'),document.getElementById('IHHidden'));"
id="ExplorerPageHtmlLeft_ctl02_ctl00_SaveCancelDelete_LBuSave"
href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ExplorerPageHtmlLeft$ctl02$ctl00$SaveCancelDelete$LBuSave&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))"
>
<img src="/images/save.gif" border="0" alt="Save">
</a>

这是 JavaScript 函数:

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);
    }
}

最佳答案

好吧,看来 options.eventTarget 的值根本不是问题所在。奇怪的是,刚好是50个字符。

Firebug 中的 options.eventTarget: "ExplorerPageHtmlLeft$ct...aveCancelDelete$LBuSave"

事实证明,Mozilla Firefox Firebug 仅显示 50 个字符。它获取控件客户端 ID 的第一部分和最后一部分(以及中间的 3 个点)并将其粘贴到 Firebug 监视变量的值字段中。为了确认,我只是将“alert(options.eventTarget)”放入 watch 变量中,它显示了整个值。所以这绝对不是!

我仍然不知道为什么我的 LinkBut​​ton 不在我的 Mozilla 代码中调用我的事件处理程序,但它在 Internet Explorer 中调用。我想一旦我有更多信息,我会发布它(可能在不同的问题上)。这可能与单击我的链接按钮时打开验证有关。我猜这就是导致 ASP.NET 自动将此函数放入客户端代码的原因。

关于javascript - Mozilla 在 WebForm_DoPostBackWithOptions JavaScript 函数中获取奇怪的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686844/

相关文章:

javascript - 回发后第一次单击按钮时 OnClientClick 不会触发

javascript - 将 anchor 标记的 href 设置为某个值,使其对页面上的 javascript/jquery 方法无响应

ruby-on-rails - 如何将 anchor 添加到redirect_to :back

javascript - 为 Predict the Sky API 设置 XMLHttpRequest

javascript - 从 AJAX POST 响应获取和存储 cookie(来自 Set-Cookie)

Javascript - 函数/闭包变量范围 - 变量定义在哪里?

c# - C#在.net 2.0中使用string.join时删除空null

c# - ASP.NET:获取TreeNode的容器TreeView

html - 为什么 section/div 内的 HTML <a> 标记会在 section/div 之外产生重复项?

javascript - :-infinity mean in Initiator column of Chrome dev tools 是什么意思