Подмена URL в веб-браузере - PullRequest
3 голосов
/ 27 января 2010

Допустим, я получил исходный код какой-либо страницы (например, http://example.com).. Теперь я хочу записать этот исходный код в WebBrowser, используя что-то вроде:

myWebBrowser.Navigate("about:blank");
myWebBrowser.Document.Write(sourceCode);

Теперь давайте представим, что на домашней странице Example.com есть относительный URL, такой как:

<img src="/logo.gif" />

WebBrowser попытается загрузить его с about:blank/logo.gif. Я хочу сообщить веб-браузеру, что «текущий адрес» равен http://example.com, поэтому вместо него используется http://example.com/logo.gif.

Запись непосредственно в свойство Url WebBrowser вызовет Navigate (), который избавится от любого текста, который я написал.

Я ищу решение, которое работает и для других элементов, таких как таблицы стилей, javascript (например, <script language="text/javascript" src="myscript.js">), ссылки и т. Д., А не только для изображений.

Возможно ли это?

Ответы [ 3 ]

5 голосов
/ 27 января 2010

Вы можете попробовать вставить элемент <base> в заголовок: http://www.w3.org/TR/html4/struct/links.html#edef-BASE

Способ вставки тега зависит от языка, который вы используете, но вы должны стремиться получить базовый тег сразу после <head>, чтобы результирующий источник читал:

<head><base href="http://example.com"/>

Конечно, если в документе уже есть элемент <base>, вы должны удалить его.

3 голосов
/ 27 января 2010

Вы можете добавить элемент <BASE> в свой код и указать, что база равна http://example.com

3 голосов
/ 27 января 2010

Если вы попытаетесь изменить URL адресной строки, браузер будет перемещаться по нему, и вы ничего не можете с этим поделать.

Но в вашем HTML можно «подделать» исходный URL для ваших ресурсов, используя <BASE> tag .

Я думаю, что это ближе всего вы можете пойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...