Re[4]: CHtmlView::Navigate2
От: sobolev811  
Дата: 11.02.02 11:06
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>Здравствуйте Аноним, Вы писали:


S>>>>1. Navigate2(_T("http://1.1.1.111/Unit/KA/264.htm#Автоматический выбор бумаги"));

S>>>>2. Navigate2(_T("http://1.1.1.111/Unit/KA/264.htm#Редакторский планшет"));
S>>>>3. Navigate2(_T("http://1.1.1.111/Unit/KA/264.htm#Дуплекс"));

S>>>>Но почему-то работает правильно только строка 3

S>>>>т.е. если метка содержить больше одного слова, то переходить на нее браузер отказываеться.
S>>>>Интересно что присмотре страницы в IE все ссылки работают.

AF>Попробуй открыть такую ссылку в новом окне и посмотри, что будет написано в адресной строке браузера.


Я уже понял в чем проблема, но не знаю как решить...
Проблема в том, что когда я передаю ссылку через IWebBrowser2::Navigate2, он ее кодирует (вставляет вместо пробела код пробела "%20") и потом ищет в документе метку в точности соответствующую закодированной строке (например, "Редакторский%20планшет"). Я поправил метки в html-файле ( "Редакторский планшет" заменил на "Редакторский%20планшет" ) и теперь Navigate работает правильно!
Но! Когда я открываю документ "http://1.1.1.111/Unit/KA/264.htm" в IE и кликаю на локальную ссылку, то он метку не кодирует и в адресной строке появляеться строка "http://1.1.1.111/Unit/KA/264.htm#Автоматический выбор бумаги".
В документе IE будет метку "Автоматический выбор бумаги", т.е так как она записана в теге <a>
А если я сразу в адресной строке IE указу URL в месте с меткой ("http://1.1.1.111/Unit/KA/264.htm#Автоматический выбор бумаги"), то после того документ загрузиться, IE обновить адресную строку и URL будет иметь кодированный вид "http://1.1.1.111/Unit/KA/264.htm#Автоматический%20выбор%20бумаги".
Теперь IE будет искать в документе метку "Автоматический%20выбор%20бумаги".
Вот так!
Как быть, господа?
Удалять пробелы из меток?
Или есть другой способ перехода на локальную метку отличный от Navigate, принимает локальную метку и не кодирует ее?

Сергей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.