powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / javascript объекты
5 сообщений из 5, страница 1 из 1
javascript объекты
    #34102036
parapet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AJAX заставил тесно работать с javascript. Часто бывает необходимо посмотреть методы и свойства объекта javascript. Например, след код:


Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args)
{                 

}

в доке не описано, какие методы/свойства есть у args — там только сказано про тип этого параметра. Как узнать?... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
javascript объекты
    #34103268
Кэр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, parapet, Вы писали:

P>AJAX заставил тесно работать с javascript. Часто бывает необходимо посмотреть методы и свойства объекта javascript. Например, след код:

P>
P>Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
P>function EndRequestHandler(sender, args)
P>{                 

P>}
P>

P>в доке не описано, какие методы/свойства есть у args — там только сказано про тип этого параметра. Как узнать?

Попробуйте:


Array.prototype.toString = 
Object.prototype.toString = function() {
  var cont = [];
  var addslashes = function(s) {
    // Использовать replace НЕЛЬЗЯ - в Опере
    // происходит зацикливание, т.к. из replace
    // зачем-то вызывается Object.toString().
    return 
s.split('\\').join('\\\\').split('"').join('\\"');
  }
  for (var k in this) {
    if (cont.length) cont[cont.length-1] += ",";
    var v = this[k];
    var vs = '';
    if (v.constructor == String) 
vs = '"' + addslashes(v) + '"';
    else 
vs = v.toString();
  if (this.constructor == Array)
cont[cont.length]
  else 
cont[cont.length] = k + ": " + vs;
  }
  // Здесь тоже нельзя делать replace()! 
  cont = "  " + cont.join("\n").split("\n").join("\n  ");
  var s = cont;
  if (this.constructor == Object) {
    s = "{\n"+cont+"\n}";
  } else if (this.constructor == Array) {
    s = "[\n"+cont+"\n]";
  }
  return s;
}

Пример использования:


var hash = {
  color:    "red",
  artefact: "pill",
  actors: {
    supplier: "Morp\"heus",
    consumer: "Neo"
  },
  numbers: [10, 20, 30],
  slashquote: "with \\ (slash) and \" (quote)"
}
alert(hash);

Взято отсюда... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
javascript объекты
    #34103731
_FRED_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Кэр, Вы писали:

Кэр>Взято отсюда

Пасиб за ссылку! :beer:... << RSDN@Home 1.2.0 alpha rev. 662>>
Now playing: «Тихо в лесу…»
...
Рейтинг: 0 / 0
javascript объекты
    #34104355
Кэр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, _FRED_, Вы писали:

_FR>Пасиб за ссылку! :beer:

На здоровье ;)... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
javascript объекты
    #34104675
mogadanez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Кэр, Вы писали:

Кэр>Здравствуйте, parapet, Вы писали:

P>>AJAX заставил тесно работать с javascript. Часто бывает необходимо посмотреть методы и свойства объекта javascript. Например, след код:

P>>
P>>Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
P>>function EndRequestHandler(sender, args)
P>>{                 

P>>}
P>>

P>>в доке не описано, какие методы/свойства есть у args — там только сказано про тип этого параметра. Как узнать?

пример интересный, только морально устаревший ИМХО.
уж коль мы говорим про атлас( буду называть так, ajax asp.net как то не звучит :) ) , лучше пользовать штатный JSON Serializer.

да и для начального вопроса, автору важна только одна строка:


  for (var k in this)

дальше пользуем инфо о типах которую опять таки атлас дает. я не знаю почему в атласе не сделалим полноценную информацию о типе. с виду это не сложно.


если вернуться к начальному примеру, то можно написать:

            function print (obj)
                {
                    sb = new Sys.StringBuilder();
                    sb.append( String.format( "{0}: {1}\n", "root", Object.getType( obj ).getName() ) );
                    for (var k in obj ) 
                        {
                        val = obj[k] ? Object.getType( obj[k] ).getName() : null;
                        sb.append( String.format( "--{0}: {1}\n", k, val ) );                        
                        }
                    alert( sb );
                }
                function EndRequestHandler(sender, args)
                {
                     print ( args )
                     print ( sender );                            
                                    
                }

выдаст для сендера например:

root: Sys.WebForms.PageRequestManager
--_getPageLoadingEventArgs: Function
--_getPageLoadedEventArgs: Function
--_findNearestElement: Function
--_elementContains: Function
--dispose: Function
--remove_pageLoading: Function
--add_pageLoading: Function
--remove_pageLoaded: Function
--add_pageLoaded: Function
--remove_initializeRequest: Function
--add_initializeRequest: Function
--remove_endRequest: Function
--remove_beginRequest: Function
--get_isInAsyncPostBack: Function
--_form: Sys.UI.DomElement
--_updatePanelIDs: Array
--_updatePanelClientIDs: Array
--_oldUpdatePanelIDs: Array
--_childUpdatePanelIDs: Array
--_panelsToRefreshIDs: Array
--_updatePanelHasChildrenAsTriggers: Array
--_asyncPostBackControlIDs: Array
--_asyncPostBackControlClientIDs: Array
--_postBackControlIDs: Array
--_postBackControlClientIDs: Array
--_scriptManagerID: String
--_pageLoadedHandler: Function
--_additionalInput:
--_onsubmit:
--_onSubmitStatements: Array
--_originalDoPostBack: Function
--_postBackSettings: Object
--_request:
--_onFormSubmitHandler: Function
--_onFormElementClickHandler: Function
--_onWindowUnloadHandler: Function
--_asyncPostBackTimeout: Number
--_referencedScripts: Array
--_scrollPosition:
--_dataItems: Object
--_response: Sys.Net.XMLHttpExecutor
--_processingRequest:
--_initializeInternal: Function
--_onFormSubmit: Function
--_onFormElementClick: Function
--_onWindowUnload: Function
--_doPostBack: Function
--_pageLoadedInitialLoad: Function
--_updateControls: Function
--_uniqueIDToClientID: Function
--_convertToClientIDs: Function
--add_endRequest: Function
--_get_eventHandlerList: Function
--_events: Sys.EventHandlerList
--_pageLoaded: Function
--add_beginRequest: Function
--_getPostBackSettings: Function
--_matchesParentIDInList: Function
--_createPostBackSettings: Function
--_onFormSubmitCompleted: Function
--_getScrollPosition: Function
--_validPosition: Function
--abortPostBack: Function
--_decodeString: Function
--_splitNodeIntoArray: Function
--_updatePanel: Function
--_destroyTree: Function
--_scriptsLoadComplete: Function
--_endPostBack: Function

P.S.

есть еще интересная штука,

Sys.Preview.TypeDescriptor.getTypeDescriptor( someObj )
возвращаемый дескриптор содержит более полную инфо о типе, методы, проперти, атрибуты,
но этот объект должен реализовывать Sys.Preview.ITypeDescriptorProvider
реально я пока встретил одного такого реализатора — Sys.Preview.Data.DataRow.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / javascript объекты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]