JS: innerHTML заменяет тэги при копировании

Ashotovich

Новичок
JS: innerHTML заменяет тэги при копировании

Всем доброго дня.

При использовании кода типа
PHP:
tablename.tBodies[0].rows[r].cells[c].innerHTML = tablename.tBodies[0].rows[r0].cells[c0].innerHTML;
происходит следующее: если в этом самом содержимом innerHTML находится тэг типа <img src="something.gif">, то при копировании он трансформируется в тэг <img src="file:///D:/directoryname/something.gif">, то есть относительный путь к картинке заменяется на абсолютный.

Браузер - IE 6.

Может, кто-нибудь подскажет, как этой подлости избежать?

Заранее благодарю за помощь.

С уважением.
 

kruglov

Новичок
1. А какая разница? Редактор что ли пишете? В MSIE адреса всегда преобразуются в абсолютный вид, так что они еще до копирования такие.
2. у String есть replace
 

Линка

Новичок
Ashotovich
replace(regularExpression,replacementString) ;
Возвращает строку, в которой фрагменты исходной строки, соответствующие образу регулярного выражения regularExpression, заменены на строку replacementString
str="is s you";
str7 = str.replace("is s","is not s");
 

Ashotovich

Новичок
Автор оригинала: Линка
Ashotovich
replace(regularExpression,replacementString) ;
Возвращает строку, в которой фрагменты исходной строки, соответствующие образу регулярного выражения regularExpression, заменены на строку replacementString
str="is s you";
str7 = str.replace("is s","is not s");
Линка, спасибо, про функцию replace я в курсе. Но, во-первых, это все же костыль, а не полноценное решение проблемы (хотя если это проблема IE, то по другому и не выйдет), а во-вторых этот фокус не проходит. Я уже пробовал - если делать replace перед подстановкой кода, то эта функция ничего не находит (например, если написать tablename.tBodies[0].rows[r].cells[c].innerHTML = tablename.tBodies[0].rows[r0].cells[c0].innerHTML.replace(/file/, "@@@");, то совпадений не будет, так как в исходной ячейке таблицы все ссылки относительные), а если делать replace уже после вставки кода в ячейку, то все равно ссылки становятся абсолютными. Злобный IE, похоже, имеет свой взгляд на то, как следует прописывать адреса.

Попробую в понедельник обмануть браузер, поизводя две операции replace - первую, которая исковеркает тэги так, чтобы браузер не понял, что там стоит адрес картинки, а вторую, чтобы восстановить тэги уже после вставки кода в ячейку.

-~{}~ 18.02.06 14:18:

Автор оригинала: kruglov
1. А какая разница? Редактор что ли пишете? В MSIE адреса всегда преобразуются в абсолютный вид, так что они еще до копирования такие.
2. у String есть replace
kruglov,
Разница в том, что тот же IE почему-то по-разному расставляет картинки, расположенные в слое <DIV>, если перед этим тэгом идет тэг <IMG> в той же ячейке таблицы в зависимости от того, абсолютный или относитльный адрес стоит для тэга IMG. В понедельник напишу пример кода.
 

Aknichy

Новичок
у меня тот же вопрос - есть ли обход замены в путях?
Я как раз пишу(точнее исправлю именно этот "дефект") редактор.
innerHTML.replace действительно не помогает.
(
мне на пример выдал
было <A href='nn.htm'>fff</A>
стало <A href="http://site.loc/edit/**/nn.htm">fff</A>
код
parent.message.innerHTML=parent.message.innerHTML.replace("http://site.loc/edit", "**");

т.е. заменяет, но тут же подставляет еще :(
)
 
Сверху