2009-07-29 1 views
2

У меня есть специальное требование для рендеринга Javascript на главной странице сайта asp.net. Существует два особых требования:Оказание Javascript на главной странице asp.net в определенном месте

1) Положение - оно должно отображаться в самом конце страницы непосредственно перед тегом BODY 2) Управление - отображать его только по запросу.

Я решил # 2, создав веб-часть, которая будет отображать javascript только тогда, когда она будет размещена на странице. Но я не мог достичь # 1, так как веб-часть не дает мне контроля над тем, где можно отрисовать javascript внутри тега тела.

Перед тем, как решить эту проблему?

Прошу совета.

Благодаря Sachit

ответ

1

Попробуйте с помощью ClientScript.RegisterStartupScript, он впрыскивает сценарий прямо над тэгом </тела>.

+0

Это дает мне только контроль над тем, когда делать .... но не где делать .... Оба важны для меня :( – 2009-07-29 17:24:01

+0

@Sachit - если «где» вы имеете в виду, какие страницы нужно отображать ... Я бы предложил иметь вспомогательную функцию, которая регистрирует скрипт, а затем программно вызывать вспомогательную функцию на страницах, которые должны ее отображать. – JustLoren

+0

Фактически, где я имел в виду точное местоположение сценария. Мне нужен этот скрипт чуть выше. Я думаю, что я могу приблизиться к этому, используя ClientScript.RegisterStartupScript, но похоже, что я не могу контролировать порядок скриптов, если у меня есть несколько проблем, так как у меня много скриптов на этой странице, и я хочу это должно быть внизу. – 2009-07-29 19:15:40

0

RenderControl - последний способ возврата в жизненный цикл MasterPage, который вы можете переопределить. Мое предположение было бы поставить его там.

0

Если вы используете главную страницу, то почему бы не поставить держатель содержимого прямо перед тегом тега конца? Страницы контента должны отображать их JavaScript в этом конкретном держателе места.

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server">  


    <asp:ContentPlaceHolder ID="headerContent" runat="server"/> 
</head> 
<body> 
    <form id="mainForm" runat="server"> 
     <asp:ContentPlaceHolder ID="mainContent" runat="server" /> 
     <asp:ContentPlaceHolder ID="footerContent" runat="server" />  
    </form>  

    <asp:ContentPlaceHolder ID="footerJsContent" runat="server"/> 
</body> 
</html> 

Содержимое страницы должны оказывать свое JavaScript внутри держателя footerJsContent место.

Смежные вопросы