Как проверить присутствует ли на странице заданный объект?
Здравствуйте!
У меня возникла следующая ситуация: есть свой собственный класс Toolbar. На страницах создаются объекты этого класса след. образом: <script language="javascript"> var tbIns = new ToolBar (var1, var2, var3). ... Как узнать при загрузке страницы, не работая со строками, присутствует ли на ней объекты созданного мной класса? (на уровне объектной модели) Подскажите пожалуйста!:) |
если определены глобально, то
if (window['tbIns']) { ... Или if (window.tbIns) { ... Либо if ('tbIns' in window) { ... .ps: роль window в примерах может играть любой известный скоп, в котором определен объект. Первый и третий случаи могут использоваться, когда имя объекта для проверки заранее не известно. Причем, последний проверяет именно присутствие данного объекта (первые два случая могут вернуть false (исходя из значения), даже если свойство будет присутствовать). |
nick,
Вам нужно просто проверить наличие определенных объектов или найти все экземпляры класса? Если надо найти экземпляры, то вот пример: <script type="text/javascript"> var ToolBar = function(var1, var2, var3) { } var a = new ToolBar(1958,5,21); var b = new ToolBar(1958,5,21); var z = new Date(1958,5,21); for (var k in window) { if (typeof(window[k]) == "object" && window[k] instanceof ToolBar) { alert ('Переменная "' + k + '" экземпляр класса "ToolBar".'); } } </script> Естественно оно тут ищет только в свойствах объекта window. Если надо искать глубже - тут надо строить рекурсию. |
Все. Понял. Спасибо большое за помощь!:)
|
Всем привет!
У меня примерно подобный вопрос. на страницах есть <h3 class="nav1"> <h3 class="nav2"> ... Как узнать присутствует ли на странице объект <h3 class="nav...">? (Или это не объект... я уж точно не знаю, т.к. в JS не разбираюсь) Помогите великие ГУРУ!!! Буду очень признателен. По описанному выше методу что то не получилось... |
это DOM-сущности. и работаь с ним надо при помощи методов DOM
var h3_elems=document.getElementsByTagName('h3'); for(var i=0;i<h3_elems.length;i++){ if(h3_elems[i].className=='nav1'){ //....PROFIT } } |
Огромное спасибо! Помогло!
|
Цитата:
|
Часовой пояс GMT +3, время: 16:59. |