У меня есть компонент TWebBrowser (Delphi 7), и я загрузил HTML из потока памяти. HTML-код страницы загружен нормально, страница отображается правильно. Но когда я пытаюсь нажать на любую гиперссылку с адресами (значение атрибута href), например, «file: /// C: /dir/page.html», НИЧЕГО не происходит. Там нет сообщения об ошибке, и браузер не пытается перейти на другую страницу. URL-адрес правильный на 100% - когда я загружаю ту же веб-страницу в тот же экземпляр TWebBrowser, но из файла на жестком диске, а не из потока памяти, именно эта ссылка работает нормально.
Есть идеи, что может быть не так?
Я пытался выполнить следующие операторы:
OleCheck(WebBrowser.SecurityManager.SetZoneMapping(URLZONE_INTRANET, 'about:blank', SZM_DELETE));
OleCheck(WebBrowser.SecurityManager.SetZoneMapping(URLZONE_TRUSTED, 'about:blank', SZM_DELETE));
OleCheck(WebBrowser.SecurityManager.SetZoneMapping(URLZONE_INTERNET, 'about:blank', SZM_DELETE));
OleCheck(WebBrowser.SecurityManager.SetZoneMapping(URLZONE_UNTRUSTED, 'about:blank', SZM_DELETE));
OleCheck(WebBrowser.SecurityManager.SetZoneMapping(URLZONE_LOCAL_MACHINE, 'about:blank', SZM_DELETE));
OleCheck(WebBrowser.SecurityManager.SetZoneMapping(URLZONE_LOCAL_MACHINE, 'about:blank', SZM_CREATE));
, но они ничего не изменили (они выполнялись правильно, без ошибок, то есть HRESULT = S_OK все время). Я должен сказать, что компонент на самом деле TEmbeddedWB (он имеет свойство SecurityManager), хотя TWebBrowser ведет себя так же - я только что проверил его.
Я думаю о том, чтобы прибегнуть к использованию файла во временном каталоге.
Спасибо всем, я наконец обошел проблему, используя файл в временном каталоге.