在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'传递给函数。
答案 0 :(得分:0)
我设法复制了您的问题。似乎当脚本在.cs中注册时,浏览器控制台窗口会抱怨“事件”未定义。也许在注册脚本之前检查空值。
答案 1 :(得分:0)
Mozilla Firefox没有定义事件全局变量,我们需要将事件显式传递给具有事件参数的函数。