определить javascript в элементе управления ascx или на родительской странице?

#c# #javascript #asp.net

#c# #javascript #asp.net

Вопрос:

У меня возникли некоторые проблемы с javascripts, которые не работают. Мой asp.net 3.5 приложение webforms имеет страницу, содержащую несколько пользовательских элементов управления (ascx), которые содержат javascript. Не все из них работают, как лучше всего использовать javascript? в разделе head родительской страницы или в пользовательском элементе управления? также мне всегда нужно определять это так? Я не использую здесь какой-либо фреймворк js:

 window.onload = function(){ 
//initialize js scripts

}
  

Комментарии:

1. Когда вы это делаете window.onload = function()... , каждый раз вы переопределяете onload обработчик. Если вы делаете это, вы захотите объявить его только один раз или найти способ сохранить функции, которые затем вызываются в window.onload обработчике.

Ответ №1:

Я бы использовал RegisterStartupScript в элементах управления и позволил ASP.NET работает для вас. Кроме того, это предотвратит множество проблем в случае, если у вас есть несколько экземпляров одного и того же элемента управления на странице:

     String csname1 = "PopupScript";
    Type cstype = this.GetType();

    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;

    // Check to see if the startup script is already registered.
    if (!cs.IsStartupScriptRegistered(cstype, csname1))
    {    
        cs.RegisterStartupScript(cstype, csname1, "alert('Hello World!')", true);
    }
  

Комментарии:

1. я только что попробовал, но он не отображается? кстати, у меня включен js

2. Вам придется опубликовать некоторый код, чтобы кто-нибудь мог помочь вам в дальнейшем. Мы не знаем, что вы делаете или каковы ваши ошибки.

3. сайт слишком большой: ( какой хороший инструмент для отладки ошибок javascript?

4. Используйте firebug. Вкладка консоль сообщит вам, где происходит сбой. getfirebug.com