1

У меня очень странная проблема в IE8 (и только в IE версии ниже 8). Проблема заключается в привязке attr, если я помещаю закодированную строку электронной почты (с% 26,% 40 и т. Д.), Страница не будет отображать привязки данных в текстовом поле ('[email protected]' в приведенном ниже примере) вместо этого он будет отображаться как «mailto: first% 26last% 40domain.com».Закодированные символьные разрывы Нокаут js привязывается к данным в IE8

<a data-bind=" visible: Email.length > 0, text: '[email protected]', attr:{ href: 'mailto:' + 'first%26last%40domain.com' }"></a> 

Странная вещь это делает просто отлично, если я использовать стандартный закодированные строки

<a data-bind=" visible: Email.length > 0, text: '[email protected]', attr:{ href: 'mailto:' + 'first&[email protected]' }"></a> 

Оба способа работают должным образом на Firefox и Chrome и выше версии IE.

+0

Возможно просто ошибка IE8, возможно только локально организовано: HTTP: // WWW ? .wrensoft.com/форум/showthread.php 3460-IE8-ошибка (-) - проблема-с URL-кодирование-амперсанд-символы и-относительными файловыми пути –

ответ

1

Я отлаживал его и обнаружил, что Knockout js использует метод DOM setAttribute() для установки href. И по документации из W3School, setAttribute() поддерживает браузер IE9 и новее, поэтому я думаю, что это и вызывает странный результат.

я искал вокруг о SetAttribute(), другие люди также столкнулись с аналогичной проблемой, ссылка ниже:

https://social.msdn.microsoft.com/Forums/ie/en-US/aa6bf9a5-0c0b-4a02-a115-c5b85783ca8c/javascript-modifying-href-changes-link-text-as-well-for-mailto-protocol?forum=iewebdevelopment

Смежные вопросы