cdu*_*dub 18 javascript c# asp.net
我正确地注射了这个吗?
string myScriptName = "EventScriptBlock";
string myScript = string.Empty;
//Verify script isn't already registered
if (!ClientScript.IsClientScriptBlockRegistered(myScriptName))
{
    Response.Write('b');
    myScript = "\n<script type=\"text/javascript\" language=\"Javascript\" id=\"EventScriptBlock\">\n";
    myScript += "alert('hi');";
    myScript += "\n\n </script>";
    ClientScript.RegisterClientScriptBlock(this.GetType(), myScriptName, myScript);
}
这是在我的Page_Load,但我从来没有看到警报,我也没有JavaScript错误.
Pir*_*dul 49
您可以使用registerstartupscript而不是registerclientscriptblock!
RegisterStartupScript 使用RegisterStartupScript时,它将在页面中的所有元素之后(在表单的结束标记之前)呈现脚本.这使脚本可以调用或引用页面元素,而不会在页面的DOM中找不到它们
RegisterClientScriptBlock 使用RegisterClientScriptBlock时,脚本将在Viewstate标记之后,但在任何页面元素之前呈现.由于这是一个直接脚本(不是可以调用的函数,它将立即由浏览器执行.但是浏览器在此阶段没有在Page的DOM中找到标签,因此您应该收到"未找到对象"错误
registerstartupscript和registerclientscriptblock之间的区别
protected void Page_Load(object sender, System.EventArgs e)
 {
      string myScript = "\n<script type=\"text/javascript\" language=\"Javascript\" id=\"EventScriptBlock\">\n";
        myScript += "alert('hi');";
        myScript += "\n\n </script>";
     Page.ClientScript.RegisterStartupScript(this.GetType(), "myKey", myScript, false);
 }
我觉得这与你的asp.net/html标记有关.
你的.aspx文件中是否有这样的表单标签?
<form id="form1" runat="server">
   ....
</form>
双方的RegisterStartupScript和的RegisterClientScriptBlock会工作.
问题在于myScript(字符串变量).在myScript变量中,您只需要使用警报变量,因为无论何时使用它,脚本标记都会在运行时自动添加到页面的HTML中.要在您的页面上检查此权限并查看页面的来源.
protected void Page_Load(object sender, EventArgs e)
{
        string myScript = string.Empty;
        //myScript = "\n<script type=\"text/javascript\" language=\"Javascript\" id=\"EventScriptBlock\">\n";
        string registerKey = "alert('RegisterClientScriptBlock');";
        myScript = "alert('RegisterStartupScript');";
        Page.ClientScript.RegisterStartupScript(this.GetType(), "RegisterStartupScript", myScript, true);
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RegisterClientScriptBlock", registerKey, true);
    }
注意:我首先执行 RegisterStartupScript而不是 RegisterClientScriptBlock.但最后会执行RegisterStartupScript警报,因为它将在页面末尾添加.RegisterClientScriptBlock将始终在页面的开头添加.
| 归档时间: | 
 | 
| 查看次数: | 76790 次 | 
| 最近记录: |