我有以下脚本:
<script type="text/javascript"src = "//www.gmodules.com/ig/ifr?url=http://hosting.gmodules.com/ig/gadgets/file/100080069921643878012/facebook.xml&up_useNewFB_p=1&up_showPopUp2_p=true&synd=open&w=320&h=500&title=Facebook&border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js"></script>
使用igoogle小工具。
我通过以下代码在运行时执行此脚本:
HtmlGenericControl div_general_ac = new HtmlGenericControl("div");
StringBuilder str = new StringBuilder();
str.Append("<script type=\"text/javascript\"");
str.Append("src = '" + dt_list.ElementAtOrDefault(0).Field<string>("process_url") + "'" + "></");
str.Append("script>");
ClientScript.RegisterStartupScript(this.GetType(), "rowTest", str.ToString());
return div_general_ac;
一切顺利。小工具已创建,但未在div_general_ac
中创建。我想在div中执行脚本。
来自MSDN:
主要区别在于RegisterStartupScript方法的位置 在ASP.NET页面底部的JavaScript就在之前 关闭元素。 RegisterClientScriptBlock方法放置 直接在页面中的开始元素之后的JavaScript。
我希望脚本在特定位置不在顶部或底部。
答案 0 :(得分:4)
您不需要使用ClientScript。如果您只是将脚本放入<div>
元素,那么就把它放在那里。例如:
protected void Page_Load(object sender, EventArgs e)
{
form1.Controls.Add(CreateGadget());
}
private HtmlGenericControl CreateGadget()
{
HtmlGenericControl div_general_ac = new HtmlGenericControl("div");
StringBuilder str = new StringBuilder();
str.Append("<script type=\"text/javascript\"");
str.Append(" src = '" + dt_list.ElementAtOrDefault(0).Field<string>("process_url")+ "'></");
str.Append("script>");
div_general_ac.InnerHtml = str.ToString();
return div_general_ac;
}
答案 1 :(得分:3)
使用这些:
HtmlGenericControl div_general_ac = new HtmlGenericControl("div");
StringBuilder str = new StringBuilder();
str.Append("<script type=\"text/javascript\"/>");
str.Append("document.getElementById('idDiv').innerHTML = '<script type=\"text/javascript\" src = '" + dt_list.ElementAtOrDefault(0).Field<string>("process_url") + "'" + " />';");
str.Append("</script>");
ClientScript.RegisterStartupScript(this.GetType(), "rowTest", str.ToString());
return div_general_ac;