Как заставить скрипт выполняться в определенном месте? - PullRequest
1 голос
/ 11 марта 2012

У меня есть следующий скрипт:

<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 непосредственно после открывающего элемента на странице.

Я хочу, чтобы скрипт находился в определенном месте, а не сверху или снизу.

Ответы [ 2 ]

4 голосов
/ 13 марта 2012

Вам не нужно использовать 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 голосов
/ 11 марта 2012

используйте это:

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