Здравствуйте!
Я использую CHtmlView для отображения html-документов.
html-документы содержать метки и я хочу загрузить страницу примерно так:
1. Navigate2(_T("
http://1.1.1.111/Unit/KA/264.htm#Автоматический выбор бумаги"));
2. Navigate2(_T("
http://1.1.1.111/Unit/KA/264.htm#Редакторский планшет"));
3. Navigate2(_T("
http://1.1.1.111/Unit/KA/264.htm#Дуплекс"));
Но почему-то работает правильно только строка 3
т.е. если метка содержить больше одного слова, то переходить на нее браузер отказываеться.
Интересно что присмотре страницы в IE все ссылки работают.
Сергей.
Здравствуйте sobolev811, Вы писали:
S>Я использую CHtmlView для отображения html-документов.
S>html-документы содержать метки и я хочу загрузить страницу примерно так:
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 все ссылки работают.
А URL encode не пробовал?
1. Navigate2(_T("
http://1.1.1.111/Unit/KA/264.htm#Автоматический%20выбор%20бумаги"));
2. Navigate2(_T("
http://1.1.1.111/Unit/KA/264.htm#Редакторский%20планшет"));
Здравствуйте Alex Fedotov, Вы писали:
AF>Здравствуйте sobolev811, Вы писали:
S>>Я использую CHtmlView для отображения html-документов.
S>>html-документы содержать метки и я хочу загрузить страницу примерно так:
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>А URL encode не пробовал?
AF>1. Navigate2(_T("http://1.1.1.111/Unit/KA/264.htm#Автоматический%20выбор%20бумаги"));
AF>2. Navigate2(_T("http://1.1.1.111/Unit/KA/264.htm#Редакторский%20планшет"));
пробовал — не помогает
:crash:
Здравствуйте Аноним, Вы писали:
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 все ссылки работают.
Попробуй открыть такую ссылку в новом окне и посмотри, что будет написано в адресной строке браузера.
Здравствуйте 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, принимает локальную метку и не кодирует ее?
Сергей.