我有以下脚本:
<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 :
The main difference is that the RegisterStartupScript method places the JavaScript at the bottom of the ASP.NET page right before the closing element. The RegisterClientScriptBlock method places the JavaScript directly after the opening element in the page.
我希望脚本位于特定位置,而不是顶部或底部。
最佳答案
您不需要使用 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;
}
关于c# - 如何强制脚本在特定位置执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9654039/