Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.05.2013, 03:32
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,750

Проблемы с onclick
Здравствуйте, ответьте, пожалуйста, на вопрос.
Почему не работает onclick?

html страницы:
<!DOCTYPE html>
<html>
<head>
<title>Onclick</title>
</head>
<body>

</body>
</html>


js-код, который будет воспроизводить GreaseMonkey:

document.getElementsByTagName('body')[0].innerHTML='<div></div>';
document.getElementsByTagName('body')[0].getElementsByTagName('div')[0].innerHTML='<div></div>';
document.getElementsByTagName('body')[0].getElementsByTagName('div')[0].getElementsByTagName('div')[0].innerHTML='<a>Click</a>';
document.getElementsByTagName('body')[0].getElementsByTagName('div')[0].getElementsByTagName('div')[0].getElementsByTagName('a')[0].onclick=function() {document.getElementsByTagName('a')[0].innerHTML+='!';}


Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 31.05.2013, 03:55
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,518

В GreaseMonkey запрещено добавление обработчика через свойство
x.onclick = function(){}
. Вместо этого нужно использовать
x.addEventListener('click', function(){}, false)


P.S.
document.getElementsByTagName('body')[0].innerHTML='<div><div><a>Click</a></div></div>';
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 31.05.2013, 12:26
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,750

Сообщение от Aetae Посмотреть сообщение
В GreaseMonkey запрещено добавление обработчика через свойство
x.onclick = function(){}
Однако этот код работает:
document.getElementsByClassName('main')[0].innerHTML+='<div class="line"></div><div id="script_foot"><a href="javascript://">Настройки</a></div>';
document.getElementById('script_foot').getElementsByTagName('a')[0].onclick=function(){script_option();window.scrollTo(0,0);}


Сообщение от Aetae Посмотреть сообщение
P.S.
document.getElementsByTagName('body')[0].innerHTML='<div><div><a>Click</a></div></div>';
Приведенный мною код лучше отражает суть проблемы.

Меня больше интересует почему в одних случаях событие срабатывает, а в других нет?
Ответить с цитированием
  #4 (permalink)  
Старый 01.06.2013, 19:27
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,750

Неужели ответа не будет?(
Ответить с цитированием
  #5 (permalink)  
Старый 01.06.2013, 19:55
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,518

Я тебе уже ответил. Onclick и не должен работать. Почему работает во втором случае - другой вопрос.
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 01.06.2013, 20:24
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,750

Aetae,
addEventListener так же не работает.
Ответить с цитированием
  #7 (permalink)  
Старый 01.06.2013, 20:51
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Nexus,
Имхо на скок помню проблемными были общения именно с тегами <a>
какая то одна из моих закладок http://softlakecity.ru/browsers/firefox/greasemonkey - может что полезно...
Ответить с цитированием
  #8 (permalink)  
Старый 01.06.2013, 20:56
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,750

Deff,
менял "<a></a>" на "<z></z>", "<span></span>" и т.п., ничего не вышло, событие не происходит.
Ответить с цитированием
  #9 (permalink)  
Старый 01.06.2013, 21:03
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Nexus,
А поясните задачу... мож иными средствами можно проще решить?
Ответить с цитированием
  #10 (permalink)  
Старый 01.06.2013, 22:06
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,750

Deff, Мне нужно сделать "настройки скрипта".
На странице скриптом создается ссылка и блок:
<a href="javascript://" id="option_open">Option</a>
<div style="display:none;" class="script_block">
	<div class="script_block_head">
		<div class="script_block_head_title"></div>
		<div class="script_block_head_close">Х</div>
	</div>
	<div class="script_block_body"></div>
</div>


Клик по #option_open, должен вызвать функцию, которая заполнит .script_block и поменяет его 'display' на ''.
Функция заполняет .script_block_body этим:

<div class="script_block_body">
	<div class="script_module_setting">
		<span class="script_tooltip">?</span>
		<!-- тут написано, что произвойдет при клике по одной из ссылок //-->
		<div>
			<a href="javascript://">1</a>
			<!-- 
				При клике по ссылке, значение переменной, 
				описанной в скрипте, должно измениться, 
				что изменит поведения скрипта 
			//-->
			<a href="javascript://">2</a>
			<a href="javascript://">3</a>
		</div>
	</div>
	<div class="script_module_setting"></div>
	<div class="script_module_setting"></div>
</div>

Последний раз редактировалось Nexus, 01.06.2013 в 22:09.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с onClick в IE 10 molnij Events/DOM/Window 20 06.04.2013 06:09
onclick по блоку в котором есть ссылки dr_gluk jQuery 2 17.11.2011 15:37
OnClick ячейки таблицы и ссылки в этой ячейке MasDen Javascript под браузер 2 30.06.2011 10:34
Событие onClick avtor01 Events/DOM/Window 3 03.09.2009 18:01
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37