Как передать динамическую строку в функцию Javascript, которая содержит (', ")

0

Я работаю с RSS-каналами. Я хотел бы передать ссылку и название функции Javascript, как это.

'<a href="javascript:void(0)" onclick="shareFb(\''+item.link+'\',\''+item.title+'\')"></a>'

Этот item.link и item.title динамически генерируются. Если ссылка содержит некоторые слова типа (facebook) и т.д., То (') одинарные кавычки и некоторые другие символы создают проблему, а консоль браузера бросает ошибку uncaught syntaxerror: unexpected identifier. Если заголовок и ссылка, которую я передаю, содержат простой текст, тогда я могу передать их в качестве аргументов. Есть ли какая-нибудь идея, чтобы заставить ее работать.

  • 1
    используйте encodeURIComponent ();
  • 1
    почему не просто $ ('a'). click (function () {shareFb (item.link, item.title);});
Показать ещё 1 комментарий
Теги:
rss

4 ответа

1
Лучший ответ

Попробуй это:

'<a href="javascript:void(0)" onclick="shareFb(\''+encodeURIComponent(item.link)+'\',\''+encodeURIComponent(item.title)+'\')"></a>'
0

В заголовке элемента замените вхождения ' with \'

+ Изменить

item.title

в

item.title.replace('\'', '\\'')
0

Как вы сказали, есть проблематичные персонажи. На стороне сервера попробуйте выйти из item.link и item.title.

В С# вы должны использовать: HttpUtility.UrlEncode, например. В JavaScript вы должны использовать encodeURI(). Затем, когда вы хотите декодировать параметр, используйте decodeURI().

0

В item.link вы можете использовать encodeURIComponent

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_encodeuricomponent

Ещё вопросы

Сообщество Overcoder
Наверх
Меню