Здравствуйте 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, принимает локальную метку и не кодирует ее?
Сергей.