IE8: appendChild добавляет лишнюю инфу
Здравствуйте!
Броузер: IE8 (под другой нельзя - внутреннее требование фирмы). Сайт - IIS, ASP. Проблема: При добавлении в ячейку таблицы (<td>) элемента ссылки (html тэг <a>) в href попадает "лишняя информация": директория сервера, в которой лежит страница. Например, получаю ссылку вида "http://myftp.company.ru/mydoc.pdf". При добавлении в таблицу появляется и записывается ссылка "http://mycompanycite.ru/printpage/http://myftp.company.ru/mydoc.pdf". И с setAttribute, с obj.href='' одно и тоже. Текст функции ниже: function AddUrls() { var ar_GenData = document.getElementById('igrBody'); if (typeof(ar_GenData) !== 'undefined') { for(rownum=0; rownum<ar_GenData.rows.length; rownum++) { var el_link = document.createElement("<a>"); el_link.appendChild(document.createTextNode('На ладная')); el_link.setAttribute('href', g_link[rownum]); //alert(el_link.getAttribute('href')); //здесь ещё красивый URL if (ar_GenData.rows[rownum].cells[6].lastChild != null) {ar_GenData.rows[rownum].cells[6].replaceChild(el_link, ar_GenData.rows[rownum].cells[6].lastChild);} else {ar_GenData.rows[rownum].cells[6].appendChild(el_link);} } } } |
Разобрался!
Посмотрел в Tools->Developer Tools (F12): линк правильный в href-e. Значит, этот префикс добавляет броузер. Эта "добавка" возникает, когда в URL содержатся коды с "%". Тогда сам броузер подставляет это значение. Не зависит от кода JS. (Вот только не нашел, где это в IE отключить....) Решение было простым: el_link.setAttribute('href', g_link[rownum]); заменить на el_link.setAttribute('href', decodeURIComponent(g_link[rownum])); Сейчас все работает корректно. |
Часовой пояс GMT +3, время: 18:35. |