【问题标题】:How to force the script to be executed in specific place?如何强制脚本在特定位置执行?
【发布时间】:2012-03-28 02:00:07
【问题描述】:

我有以下脚本:

<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 方法将 ASP.NET 页面底部的 JavaScript 就在 关闭元素。 RegisterClientScriptBlock 方法放置 页面中开始元素之后的 JavaScript。

我希望脚本在特定位置,而不是在顶部或底部。

【问题讨论】:

    标签: c# javascript jquery asp.net igoogle


    【解决方案1】:

    您不需要使用 ClientScript。如果您只是将脚本放入&lt;div&gt; 元素中,那么只需将其放在那里。示例:

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

    【讨论】:

      【解决方案2】:

      使用这些:

        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;
      

      【讨论】:

        猜你喜欢
        • 2011-12-26
        • 2012-07-01
        • 2020-04-19
        • 1970-01-01
        • 1970-01-01
        • 2013-03-15
        • 1970-01-01
        • 2017-08-06
        • 1970-01-01
        相关资源
        最近更新 更多