Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как вызвать функцию, управляющую интерфейсом страницы из букмарклета (https://javascript.ru/forum/dom-window/23146-kak-vyzvat-funkciyu-upravlyayushhuyu-interfejjsom-stranicy-iz-bukmarkleta.html)

Почемучкин 13.11.2011 22:42

Как вызвать функцию, управляющую интерфейсом страницы из букмарклета
 
Нужно правильно вызвать функцию javascript со страницы - помогите.

Вот есть к примеру такая страница. В ней есть спойлер со скрытым текстом. Надо развернуть его букмарклетом, чтобы при нажатии букмарклета он разворачивал все спойлеры на странице.
<div class="hidewrap">
  <div class="hidehead" onclick="hideshow($(this))">
    Скрытый текст
  </div>
  <div class="hidebody"></div>
  ..... здесь скрытый текст, картинки и т.д. .....
</div>


Так вот - нужно вызвать функцию hideshow в цикле, передав ей div'ы с классом hidehead. Функция лежит в подключенном внешнем файле functions.js
Я попробовал, пока без цикла, но что-то не получается.
javascript:
divs=document.getElementsByTagName('div');
for(i=0;i<divs.length;i++){
  if (divs[i].className && divs[i].className =='hidehead') { hideshow(divs[i]); };
};
void(0);


Что не так делаю? Неправильно обращаюсь к функции? Неправильно параметры передаю? Еще что-то?

Почемучкин 13.11.2011 22:48

С помощью alert установил, что div с нужным именем класса находится, и этот div передается функции, а дальше - происходит ошибка и скрипт прекращает работу.

То есть проблема - как правильно вызвать встроенную функцию, чтобы не было ошибки.

Что такое $(this) ?

Почемучкин 13.11.2011 23:22

Все, сработало :)
Надо было вызывать
hideshow($(divs[i]))


А как тут удалять свои сообщения? Не хочется мусорить.


Часовой пояс GMT +3, время: 20:36.