在RegisterStartUpScript中传递事件不能与Firefox一起使用

时间:2014-12-18 19:02:47

标签: javascript asp.net firefox

在asp.net页面上使用ScriptManager.RegisterStartupScript生成调用时,我一直在讨论没有调用javascript函数的问题。

经过漫长的消除过程后,我发现:

<script type="text/javascript>
function jim(e)
{
alert('Jim');
}
</script>

现在,如果我通过将此函数放在.aspx页面上来调用该函数:

<span onclick="jim(event);">Show Jim</span>

当我运行页面并单击跨度时,在Firefox中,将调用该函数并显示警报。

如果我尝试从后面的代码中调用该函数,请执行以下操作:

ScriptManager.RegisterStartupScript(this, this.GetType(), "M3", "jim();", true);

它有效。调用该函数并显示警报。

如果我尝试从后面的代码中调用该函数,请执行以下操作:

ScriptManager.RegisterStartupScript(this, this.GetType(), "M3", "jim(event);", true);

它不起作用。没有任何事情发生。

因此,如果我在.aspx页面上包含“event”作为参数这一词,那么Firefox就不会那么关心它的工作原理。

如果我从后面的代码中调用相同的函数并将'event'一词作为参数包含在内,则它不起作用。

如果我删除“event”作为参数并从后面的代码调用,它就可以了。有任何想法吗?使我抓狂。我需要在IE需要的时候将'event'传递给函数。

2 个答案:

答案 0 :(得分:0)

我设法复制了您的问题。似乎当脚本在.cs中注册时,浏览器控制台窗口会抱怨“事件”未定义。也许在注册脚本之前检查空值。

答案 1 :(得分:0)

Mozilla Firefox没有定义事件全局变量,我们需要将事件显式传递给具有事件参数的函数。

相关问题