Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2010, 17:50
Аспирант
Отправить личное сообщение для KamaZz Посмотреть профиль Найти все сообщения от KamaZz
 
Регистрация: 22.06.2010
Сообщений: 47

Вывод значения onclick
alert(document.getElementById("button" + i).getElementsByTagName("a")[0].onclick);

Вызывает ошибку:
Цитата:
Error: Component is not available

Что в принципе ожидаемо т.к. по onclick срабатывает функция...
Каким образом и возможно-ли вообще экранировать вывод функции, дабы считать значение передаваемое в функцию?

GreaseMonkey...
Ответить с цитированием
  #2 (permalink)  
Старый 24.09.2010, 18:15
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от KamaZz
Что в принципе ожидаемо т.к. по onclick срабатывает функция
Нет, чтобы она сработала, нужно ее вызвать с помощью ().
var div = document.createElement('div')
div.onclick = function(){ return 'test' }
alert(div.onclick)
alert(div.onclick())

А у тебя "Component is not available" ("Компонент недоступен") просто что-то недоступно

Последний раз редактировалось Sweet, 24.09.2010 в 18:28.
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2010, 18:31
Аспирант
Отправить личное сообщение для KamaZz Посмотреть профиль Найти все сообщения от KamaZz
 
Регистрация: 22.06.2010
Сообщений: 47

Что может быть недоступно?
Значения href, title я вывожу без проблем, такая проблема существует только с onclick...
Ответить с цитированием
  #4 (permalink)  
Старый 24.09.2010, 20:31
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от KamaZz
Что может быть недоступно?
Единственное, что пришло на ум..
<div onclick="alert(this)">text</div>
<div>text</div>
<script>
var div2 = document.getElementsByTagName('div')[1]
if (div2.addEventListener){
  div2.addEventListener('click', function(){alert(this)}, false)
} else {
  div2.attachEvent('onclick', function(){alert(this)})

} 
alert(document.getElementsByTagName('div')[0].onclick)
alert(div2.onclick)
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 25.09.2010, 09:17
Аспирант
Отправить личное сообщение для KamaZz Посмотреть профиль Найти все сообщения от KamaZz
 
Регистрация: 22.06.2010
Сообщений: 47

Прошу прощение, но зачем мне создавать евент, если я хочу просто вывести значение передаваемое в onclick?
<a onclick="sendBuildRequest('index.php?page=resources&amp;session=f8196d8eec27&amp;modus=1&amp;type=3&amp;menge=1&amp;token=4db9a09fe37081bba3519f8f4a0bfa1f');" href="#" class="fastBuild tipsStandard">
                                <img width="22" height="14" src="img/layout/pixel.gif">
                            </a>

Мне нужно вытянуть хеш "token". Alert я ставлю только что-бы проверить работоспособность скрипта.

Последний раз редактировалось KamaZz, 25.09.2010 в 11:43.
Ответить с цитированием
  #6 (permalink)  
Старый 25.09.2010, 14:29
Аспирант
Отправить личное сообщение для KamaZz Посмотреть профиль Найти все сообщения от KamaZz
 
Регистрация: 22.06.2010
Сообщений: 47

Пример: вывод оповещения
<li class="on" id="button5">
                    <div class="supply12">
                    <div class="buildingimg">
                                    <a onclick="sendBuildRequest('index.php?page=resources&amp;session=41adffae9bac&amp;modus=1&amp;type=12&amp;menge=1&amp;token=d982709c144721cf4d2a5e90daf50298');" href="#" title="|Совершенствовать Термоядерная электростанция до уровня 1" class="fastBuild tipsStandard">
                                Image
                            </a>
                                <a href="#" id="details" ref="12" title="|Термоядерная электростанция" class="detail_button tipsStandard slideIn">
                            <span class="ecke">
                                <span class="level">
                                   <span class="textlabel">
                                       Термоядерная электростанция 
                                   </span>
                                   0                               </span>
                            </span>
                        <div class="itemname" style="max-width: 96px;">Термоядерная электростанция</div></a>
                    </div>
                </div>
                </li>
<script>
alert(document.getElementById("button5").getElementsByTagName("a")[0].onclick);
</script>


Вот что здесь не так?

Последний раз редактировалось KamaZz, 25.09.2010 в 14:38.
Ответить с цитированием
  #7 (permalink)  
Старый 26.09.2010, 01:34
Аспирант
Отправить личное сообщение для KamaZz Посмотреть профиль Найти все сообщения от KamaZz
 
Регистрация: 22.06.2010
Сообщений: 47

Решение так и не нашел...
Пришлось реализовать через анальное отверстие:
for (i = 0; i < page.length + 1; i++) {
        try {
            var img = document.getElementById("button" + i).getElementsByClassName("buildingimg")[0].innerHTML;
            var token = img.substring(img.indexOf("token", 121) + 6, img.indexOf("')"));
            if (token.length == 32) break;
        } catch (e) {
            GM_log(e.message + "\nOccurred in function \"GetToken\"");
        }

Последний раз редактировалось KamaZz, 26.09.2010 в 01:40.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание события onclick? kerranswell Events/DOM/Window 31 09.05.2011 21:20
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Подстановка значения в onClick zemelea Events/DOM/Window 2 19.02.2010 20:30
Вывод JS значения в одну строку в HTML velo Общие вопросы Javascript 7 15.12.2009 03:57
Событие onClick avtor01 Events/DOM/Window 3 03.09.2009 18:01