Javascript.RU

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

Проблема с вызовом функции в качестве обработчика
Доброго времени суток!

Есть функция, которую надо вызвать в качестве обработчика события onClick для ссылки. Выглядит так (тестовый образец, сделал на время решения проблемы):

function mb_answer1(id_msg, user_name){
  alert('TEST ' + id_msg + ' ' + user_name);
};


Прикручиваю вызов на ссылку в таком виде:

<a href="#" style="text-decoration: none;" onClick="JavaScript:mb_answer1(123, 456);">Ответить</a>


Все замечательно работает, alert выбрасывает "TEST 123 456"

НО! Вторым параметром надо передать строку, прикручиваю вызов, как он должен будет выглядеть (тело ссылки будет сформировано РНР-скриптом и в него в вызов обработчика будут прописаны нужные значения):

<a href="#" style="text-decoration: none;" onClick="JavaScript:mb_answer1(123, '456');">Ответить</a>


И функция перестет работать!!! Вываливается куча ошибок, причем в разных браузерах - разные. Конкретно в Опере (в которой я в первыю очередь все тестирую) происходит следующее:

1) При загрузке страницы выпадает

Код:
JavaScript - http://caymer_web.localhost/index.php?cat=107&mode=1&mode2=5
Inline script compilation
Syntax error at line 8 while loading:
aScript:mb_answer1(123 , '456');">О
--------------------------^
expected ';', got '456'
2) При жмакании на ссылку выпадает:

Код:
JavaScript - http://caymer_web.localhost/index.php?cat=107&mode=1&mode2=5

Uncaught exception: ReferenceError: Undefined variable: mb_answer1
Error thrown at unknown location in <anonymous function>(event):
    /* no source available */
Товарищи, хэлп!!! Замучался уже, не понимаю, в чем проблема?!! Почему число передается нормально, а строка не хочет?!!
Ответить с цитированием
  #2 (permalink)  
Старый 02.05.2011, 18:41
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

<script type="text/javascript" language="javascript">
function mb_answer1(id_msg, user_name){
  alert('TEST ' + id_msg + ' ' + user_name);
};
</script>
<a href="#" style="text-decoration: none;" onclick="mb_answer1(123, '456');">Ответить</a>

Конкретно в этом примере все нормально, может все таки в вашем коде что то не так ?
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 02.05.2011, 22:31
Новичок на форуме
Отправить личное сообщение для G_M_S Посмотреть профиль Найти все сообщения от G_M_S
 
Регистрация: 02.05.2011
Сообщений: 7

Сообщение от walik Посмотреть сообщение
<script type="text/javascript" language="javascript">
function mb_answer1(id_msg, user_name){
  alert('TEST ' + id_msg + ' ' + user_name);
};
</script>
<a href="#" style="text-decoration: none;" onclick="mb_answer1(123, '456');">Ответить</a>

Конкретно в этом примере все нормально, может все таки в вашем коде что то не так ?
Конкретно ЭТОТ пример я взял не с потолка. А сделал на основе готовой функции, в которую всего-то надо было добавить имя пользователя. Когда разобрался, что причина в передачи строки в качестве параметра - тогда и начал простенькие функции крутить. И вот именно в ТАКОМ виде он и не работает, вот в чем, собственно, беда.
Ответить с цитированием
  #4 (permalink)  
Старый 02.05.2011, 22:40
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

У меня (Google Chrome) этот пример работает. Так же в IE 6 смотрел, тоже работает. Да и не реально что бы этот код не работал, тут нет ничего такого, что бы могло заставить выдавать ошибку.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #5 (permalink)  
Старый 03.05.2011, 00:00
Новичок на форуме
Отправить личное сообщение для G_M_S Посмотреть профиль Найти все сообщения от G_M_S
 
Регистрация: 02.05.2011
Сообщений: 7

Конкретно этот пример, Опера 10.63, Мазилла 3.6.17 и Сафари 5.0.3 воспринимать отказываются. Просто onClick="javascript:alert('456');" работает замечательно. Ошибку, которую выдает Опера, показал выше - expected ';', got '456' Вот это меня и смущает: не скобку там или запятую, а именно ; требует почему-то.
Ответить с цитированием
  #6 (permalink)  
Старый 03.05.2011, 11:55
Новичок на форуме
Отправить личное сообщение для G_M_S Посмотреть профиль Найти все сообщения от G_M_S
 
Регистрация: 02.05.2011
Сообщений: 7

Все, нашел в чем проблема: не обратил внимание на номер строки с ошибкой. Ссылка в тело страницы тоже вставляется жаваскриптом и именно там и вылезала ошибка.

ЗЫ: добавил слеши экранирующие
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с вызовом функции! Pacan Общие вопросы Javascript 14 30.11.2010 15:47
проблема с вызовом функции из js-файла Leax Events/DOM/Window 5 07.02.2010 19:08
Можно ли использовать функции в качестве свойства абс_позиционируемого объекта Newgen Элементы интерфейса 1 27.07.2009 14:40
В качестве параметра функции другая функция, как? Sintez Я не знаю javascript 13 11.06.2009 11:10
Проблема с вызовом функции prophet Общие вопросы Javascript 1 26.09.2008 12:26