Параметр Javascript плохо выполняется, если он содержит пробел или определенный символ - PullRequest
0 голосов
/ 05 декабря 2009

Проблема в том, что при нажатии на ссылку. У меня проблема ТОЛЬКО в том случае, если третий параметр содержит пробел ИЛИ / И, например, ê, é, î ...

<a href="javascript:arretSuivrePortefeuille('13206','Suivre','Arrêter de suivre');">Suivre</a>

Я получаю от FireBug:

arretSuivrePortefeuille не определен JavaScript: arretSuivrePortefeuille ( '13206', 'Suivre', 'Орг% C3% AAter% 20de% 20suivre'); () * +1008 *

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 05 декабря 2009

Я бы порекомендовал вам хотя бы использовать атрибут onclick вместо псевдопротокола javascript::

<a onclick="arretSuivrePortefeuille('13206','Suivre','Arrêter de suivre');"
   href="#" >Suivre</a>

Или лучше, связать событие нажатия программно

<a id="linkId" href="#">Suivre</a>

//...
document.getElementById('linkId').onclick = function () {
  arretSuivrePortefeuille('13206','Suivre','Arrêter de suivre');
  return false; // stop link navigation
};
2 голосов
/ 05 декабря 2009

Ммм, в качестве первой меры удалите атрибут href и переместите инструкцию в onclick, в любом случае это более правильный путь. Не забудьте удалить onclick и добавить return false при необходимости. Это может быть проблема с кодировкой URL, присутствующая только в href.

Если это не сработает:

  • Какую кодировку вы используете в документе?
  • В какой кодировке находятся специальные символы?
0 голосов
/ 05 декабря 2009

Атрибуты HTML должны иметь кодировку HTML. Вы можете попробовать кодировать специальные символы в вашем JavaScript:

é становится &eacute;
è становится &egrave;
и т.д.

Lookuptables имеет таблицу с множеством этих специальных символов.

Ваша строка кода станет:

<a href="javascript:arretSuivrePortefeuille('13206','Suivre','Arr&ecirc;ter de suivre');">Suivre</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...