在Firefox中未定义e.srcElement?

我正在开发一个网站,现在正在所有浏览器中测试,我目前正在使用firefox进行测试,并且在使用event.sourceElement时发现并出错?

我需要e.srcElement做的是返回值,下面的一点我展示了如何获得返回值PropID的示例。

我编写了一个使用e.srcElement的Jquery函数,它看起来如下:

$(function () { $(".DownloadLink").click(function (e) { e.preventDefault(); var PropID = getParameterByName("PropID", e.srcElement.search), Token = getParameterByName("Token", e.srcElement.search), TrackingNumber = getParameterByName("TrackingNumber", e.srcElement.search); $.post("Valuation", { PropID: PropID, Token: Token, TrackingNumber: TrackingNumber}, function (taskId) { // Init monitors $("#dialog-modal").append($("

")); updateMonitor(taskId, "Started"); // Periodically update Modal var intervalId = setInterval(function () { $.post("Progress", { id: taskId }, function (progress) { if (progress = 100) { clearInterval(intervalId); updateMonitor(taskId, "Complete"); window.location.href = "downloadcomplete"; } }); }, 100); }); });


e.srcElement如何工作的示例:

在chrome中测试并使用inspect元素时,我会发现以下行返回:

代码行:

PropID = getParameterByName(“PropID”,e.srcElement.search)

返回结果:

搜索:“?PropID = 77301&Token = 74d30c0e-b4ab-4164-9dfd-f35fd7091cdc&TrackingNumber = 367”

所以我可以获得所需的PropID结果。


还有其他一些为什么让我返回所需的值? 或者我如何让e.srcElement在fireFox中工作?

在firefox中只需调用e.target即可工作。 而不是e.srcElement [仅适用于IE]

 function getTarget(obj) { var targ; var e=obj; if (e.target) targ = e.target; else if (e.srcElement) targ = e.srcElement; if (targ.nodeType == 3) // defeat Safari bug targ = targ.parentNode; return targ; } 

如果你通过它,将返回所有浏览器的目标e

来自: – http://www.quirksmode.org/js/events_properties.html

简单如

 var val= (e.srcElement||e.target).value; console.log(val);