Форум: "Сети";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];
ВнизEmbeddedWB1 и idHTTP1 Найти похожие ветки
← →
flaxe © (2006-11-23 20:53) [0]Программа загружает Html-код через idHTTP1 в EmbeddedWB1,
Все происходит через OnBeforeNavigate2 ставлю Cancel:=True и получаю код.. вот только проблема такая: При нажатии на ссылку получается путь на локальный адресс и естественно файла такоо не существует и дело до OnBeforeNavigate2 даже не доходит, что тут можно сделать?
← →
Ш-К (2006-11-23 21:03) [1]1. ставлю Cancel:=True и получаю код..
2. При нажатии на ссылку получается путь на локальный адресс
3. и естественно файла такоо не существует и дело до OnBeforeNavigate2 даже не доходит
Ставлю виртуальное пиво, тому кто догадается, что имел ввиду автор.
Хотя бы по одному пункту.
← →
flaxe © (2006-11-23 22:36) [2]Короче программа - клиент к одной онлайн игре, всё действие игры происходит на сайте, цель программы - подменять пути картинок на локальные ("c:\...\").
Я решил сделать это используя два компонента TEmbeddedWB и IdHTTP1
При старте программа загружает в TEmbeddedWB пустую страницу c:\...\start.html ,
Далее следует EmbeddedWB1.Navigate("www.site.com");
В процедуре OnBeforeNavigate2:
Cancel:=True;
html:=idHttp1.GET(URL);
EmbeddedWB1.OleObjects.Document.Body.InnerHTML:=Html;
Все.. указанная страница загрузилась в браузер, при этом картинки загружаются с c:\...\images....
НО проблема в следующем:
все ссылки ссылаются также на c:\...\
Поидеи Cancel:=True должна былабы отменить эту загрузку, но прежде выскакивает сообщение с ошибкой 404 - файл не найден, а процедура OnbeforeNavigate2 не вызывается. Пытался делать замену всех ссылок через string replace "href=" на "href=http://www.site.com/", но некоторые ссылки указаны не относительно корня, а с http://...
Как можно исправить эту ситуацию? Т.е. мне нужно чтобы при нажатии на ссылку, не выскакивала ошибка, а передавалась в Idhttp1.GET("www.site.com/"+URL);
← →
flaxe © (2006-11-24 01:37) [3]Вот мне собственно нужно каким-то образом отлавить событие по которому EmbeddedWB1 получает ссылку, по которой далее он осуществляет переход, грубо говоря гдето между кликом мышкой на ссылку и событием OnBeforeNavigate2 , до того как он проверил "Существует Ли такая ссылка" подменить её на другую.
← →
Cawa © (2006-11-24 08:58) [4]С компонентом TEmbeddedWB я не работал и даже не представляю где его взять. Но насколько я понял тебе нужно подменять ссылки на графику в получаемом HTML коде. Если так то никаких проблем я не вижу, скачай в интернете бесплатные модули по HTML парсингу (если не хочешь заморачиваться по написанию своего).
← →
flaxe © (2006-11-24 13:05) [5]TEmbeddedWB - http://www.bsalsa.com/downloads.html
Вотс проблема там другая, еслибы все ссылки задавались только методом <a href.... всебы решилось очень просто, но большенство ссылок задаются javascript-функциями они все слишком разные =(
← →
Cawa © (2006-11-24 16:52) [6]А можно взглянуть на HTML код?
Ты имеешь понятие как генерируется код та том сервере?
Есть ли доступ к исходникам серверной части?
← →
flaxe © (2006-11-24 19:37) [7]Нет доступа нету,
<HTML>
<HEAD>
<link rel="stylesheet" type="text/css" href="../css/styles1.css">
<SCRIPT language="javascript">
function goTo(lt) { with (document.location_select) { locat.value=lt; submit(); } }
function regimeTo(pr) { with (document.place_regime) { place_regime.value=pr; submit(); } }
</SCRIPT>
<SCRIPT src="skin.JS"></SCRIPT>
<SCRIPT>window.top.frames.chat.Syst("Переходим в локацию >> "Спец. Магазин"");</SCRIPT></HEAD>
<BODY text="#FFFFFF" link="#F9FBA8" vlink="#F9FBA8" alink="#FFFFFF" leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0">
<SCRIPT>document.write(show_title("СПЕЦИАЛЬНЫЙ МАГАЗИН"));</script>
<TABLE width="95%" border=0 cellspacing=5 cellpadding=0 align=center>
<TR valign="top"><TD>
<image class="cssLocImage" border=0 src="../images/places/Capital/admin.jpg"></TD>
<TD width="100%">
В специальном магазине могут отовариться люди, имеющие какие-либо заслуги перед Мэрией. Причем простые монеты в ход здесь не идут, чиновник сверяется с какими-то бумажками, и точно знает сколько и чего Вы можете взять...
<TABLE>
<TR><TD><A HREF="javascript:goTo(25)"><image border=0 height=20 width=20 src="/images/miscellaneous/move_up.gif" onmouseover="this.src = "/images/miscellaneous/move_up_s.gif";" onmouseout="this.src = "/images/miscellaneous/move_up.gif";"></A></TD><TD>в Мэрию</TD><TR>
<TR><TD><A HREF="javascript:goTo(70)"><image border=0 height=20 width=20 src="/images/miscellaneous/move_right.gif" onmouseover="this.src = "/images/miscellaneous/move_right_s.gif";" onmouseout="this.src = "/images/miscellaneous/move_right.gif";"></A></TD><TD>в Магазин Последователей</TD><TR>
</TABLE>
</TD></TR>
<TR><TD valign="top" colspan=2>
<HR>
<table>
<tr><td colspan=2 align=left>Обменять Урановые Монеты на:</td></tr>
<tr><form action=exchange_points.php method=post><td><input type=hidden name=m value="-1"><input type=text class=text name=v value=0><input type=submit class=button value=Купить></td><td align=left>Монеты (80 за 1 УМ)</td></form></tr>
<tr><form action=exchange_points.php method=post><td><input type=hidden name=m value="-2"><input type=text class=text name=v value=0><input type=submit class=button value=Купить></td><td align=left>Опыт (10 за 1 УМ)</td></form></tr>
</table>
<HR>
<img src="/images/miscellaneous/quest.gif"><a href=# onClick="JavaScript:window.open("art_editor.php","_blank","scrollbars=yes,width= 600,height=600,resizable=yes")">Эдитор Артефактов</a><img src="/images/miscellaneous/quest.gif">
<HR>
<TABLE><TR><TD>Специальный Магазин</TD><TD><BUTTON class="button" onClick="goTo(0)">Обновить</BUTTON></TD></TR></TABLE>
<script>
function ge( a )
{
if( document.all ) return document.all[a];
else return document.getElementById( a );
}
function chg_price( a, b, c )
{
if( !( parseInt( ge( "i" + a ).number.value ) > 0 ) ) ge( "d" + a ).innerHTML = 0 + " " + c;
else ge( "d" + a ).innerHTML = String( parseInt( ge( "i" + a ).number.value ) * b ) + " " + c;
}
</script>
</center>
.....
.....
.....
<FORM method="POST" action="no_combat.php" name="location_select">
<INPUT type="hidden" name="locat" value=0>
<INPUT type="hidden" name="additional" value=0>
</FORM>
<FORM method="POST" action="no_combat.php" name="place_regime">
<INPUT type="hidden" name="place_regime" value=0>
</FORM>
</BODY>
</HTML>
Это токо в одном месте.. а вообще везде все разное!
← →
Cawa © (2006-11-25 08:55) [8]Ну что я могу тебе сказать, ничего страшного в этом коде я не увидел.
Мое мнение остается прежним, можно просто закачать html код + внешние скриптовые файлы (если в них хранятся ссылки на элементы которые ты собираешься хранить локально).
После отпарсировать код и пересобрать со своими изменениями (переделать ссылки на все файлы php, т.е. осуществлять проверку является ли эта ссылка глобальной, если нет, то добавить спереди необходимый путь).
И в конце отобразить в окне твоего броузера. (Ну может еще какие-нибудь доработки сделать, к примеру можно кроме графики локально хранить внешние скриптовые и CSS файлы.)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.049 c