Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
1-1176127944
SkySpeed
2007-04-09 18:12
2007.06.03
Как в режиме RunTime НОРМАЛЬНО изменить форму TForm?


2-1178819606
Nicky000
2007-05-10 21:53
2007.06.03
Excel


9-1152615355
aKirill.INFO
2006-07-11 14:55
2007.06.03
Nebula 2


15-1178888543
homm
2007-05-11 17:02
2007.06.03
Вторая по счету промо-акция?


2-1179176366
Qwerter
2007-05-15 00:59
2007.06.03
Поиск по дате





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский