Javascript错误:未定义函数XXXX()
我在页面中添加了一个javascript函数Javascript错误:未定义函数XXXX(),javascript,asp.net,html,Javascript,Asp.net,Html,我在页面中添加了一个javascript函数 <head> <script type=text/javascript> function show_Alert(error) { alert(error); } </script> </head> 但它抛出JS错误,显示未定义警告:( 知道吗,这里怎么了 Thanx您的脚本标记错误。 换成 <script
<head>
<script type=text/javascript>
function show_Alert(error)
{
alert(error);
}
</script>
</head>
但它抛出JS错误,显示未定义警告:(
知道吗,这里怎么了
Thanx您的脚本标记错误。
换成
<script type="text/javascript">
然而,我认为这不是问题所在。
我怀疑RegisterStartupScript在包含函数的块之前发出了它的
块,因此它最终在函数存在之前调用了该函数。检查每个
在渲染源中的位置。您的脚本标记错误。换成
<script type="text/javascript">
然而,我认为这不是问题所在。
我怀疑RegisterStartupScript在包含函数的块之前发出了它的
块,因此它最终在函数存在之前调用了该函数。检查每个
在渲染源中的位置。确保
元素有效,如下所示:
<head>
<script type="text/javascript">
function show_Alert(error)
{
alert(error);
}
</script>
</head>
功能显示警告(错误)
{
警报(错误);
}
如果格式不正确,或者无法识别类型
(您的案例两者都有),则将忽略其中的脚本,因为浏览器不知道如何处理它。请确保
元素有效,如下所示:
<head>
<script type="text/javascript">
function show_Alert(error)
{
alert(error);
}
</script>
</head>
功能显示警告(错误)
{
警报(错误);
}
如果格式不正确,或者类型无法识别(您的案例中同时包含这两种类型),则将忽略其中的脚本,因为浏览器不知道如何处理它。以下是一个示例:
<%@ Page Language="C#" %>
<script type="text/C#" runat="server">
protected void BtnClick(object sender, EventArgs e)
{
var str = "XYZ Error";
var script = new StringBuilder();
script.AppendFormat("showAlert('{0}');",
HttpUtility.JavaScriptStringEncode(str)
);
ClientScript.RegisterStartupScript(GetType(), "alert", script.ToString(), true);
}
</script>
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
function showAlert(error) {
alert(error);
}
</script>
</head>
<body>
<form id="Form1" runat="server">
<asp:LinkButton ID="Btn" runat="server" Text="Click me" OnClick="BtnClick" />
</form>
</body>
</html>
如果不进行编码,并且字符串包含一些特殊字符,例如,
,则脚本将中断。以下是一个示例:
<%@ Page Language="C#" %>
<script type="text/C#" runat="server">
protected void BtnClick(object sender, EventArgs e)
{
var str = "XYZ Error";
var script = new StringBuilder();
script.AppendFormat("showAlert('{0}');",
HttpUtility.JavaScriptStringEncode(str)
);
ClientScript.RegisterStartupScript(GetType(), "alert", script.ToString(), true);
}
</script>
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
function showAlert(error) {
alert(error);
}
</script>
</head>
<body>
<form id="Form1" runat="server">
<asp:LinkButton ID="Btn" runat="server" Text="Click me" OnClick="BtnClick" />
</form>
</body>
</html>
如果您不编码它,并且字符串包含一些特殊字符,例如,
,您的脚本将中断。对不起,这不是问题,我正在编辑问题对不起,这不是问题,我正在编辑问题Slaks RegisterStartupScript创建新块,而不是在头中。我认为这是问题。如果它在之后>
,这不应该是个问题。在每个脚本的开头放置一个普通的警报()
调用,并检查它们的警报顺序Slaks RegisterStartupScript创建新的块而不是在头中。我认为这是个问题。如果它在
之后,则不应该是个问题。放置一个普通的警报()
在每个脚本的开头调用并检查它们的警报顺序HttpUtility没有任何JavaScriptStringEncode选项:(@BreakHead,是的,这是.NET 4.0。您可以使用new JavaScriptSerializer().Serialize(str)
在旧版本的.NET.HttpUtility中作为等价物没有任何JavaScriptStringEncode选项:(@BreakHead,是的,这是.NET 4.0。您可以在旧版本的.NET中使用新的JavaScriptSerializer().Serialize(str)
作为等价物。