Javascript.RU

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

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);}
}
}
}
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2011, 15:23
Новичок на форуме
Отправить личное сообщение для YamaNeko Посмотреть профиль Найти все сообщения от YamaNeko
 
Регистрация: 29.07.2011
Сообщений: 2

Разобрался!
Посмотрел в Tools->Developer Tools (F12): линк правильный в href-e.
Значит, этот префикс добавляет броузер.
Эта "добавка" возникает, когда в URL содержатся коды с "%". Тогда сам броузер подставляет это значение. Не зависит от кода JS. (Вот только не нашел, где это в IE отключить....)

Решение было простым:
el_link.setAttribute('href', g_link[rownum]);
заменить на
el_link.setAttribute('href', decodeURIComponent(g_link[rownum]));

Сейчас все работает корректно.
Ответить с цитированием
Ответ



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

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