2012-03-11 26 views
1

我有以下脚本:如何强制脚本在特定位置执行?

<script type="text/javascript"src = "//www.gmodules.com/ig/ifr?url=http://hosting.gmodules.com/ig/gadgets/file/100080069921643878012/facebook.xml&amp;up_useNewFB_p=1&amp;up_showPopUp2_p=true&amp;synd=open&amp;w=320&amp;h=500&amp;title=Facebook&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;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方法 闭合元件前将 JavaScript的在ASP.NET页面右侧的底部。 RegisterClientScriptBlock方法将 JavaScript直接放置在页面中的开始元素之后。

我想脚本在特定的地方不在顶部或底部。

回答

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; 
    } 
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; 
+0

嗯,不起作用 – 2012-03-11 13:36:32