Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как со страницы с фреймами на лету убрать один фрейм не нарушая [D5, D7, Win95/98, WinXP]


websqlneeder ©   (2005-11-07 21:54:00) 

Как со страницы с фреймами на лету убрать один фрейм не нарушая работу всего сайта? Я делаю собственный клиент для чата для общения с людьми в привате. Так вот мне нужно что бы фрейм с общими сообщениями совсем исчез (что бы трафик не нагружался лишний), а все остальные фреймы оставались: ну там смайлики, ввод сообщения, приват и список посетителей чата.

Как это реализовать?


WebSQLNeeder   (2005-11-29 10:56:00) [1]

И что ничего нельзя придумать как избавиться от загрузки в основной фрейм?? Может какими то обходными путями ... Что то мне ничего в голову не приходит ...


SergP   (2005-11-27 11:32:00) [2]


> websqlneeder ©   (27.11.05 11:04) [17]
> Ну так сервер то выдает, но мы сами можем решать какую страницу
> загрузить (фрейм), а какой нет ...  
> ...


Там устроено все совсем по другому... фреймы там вообще загружаются один раз при входе в чат. Бывают другие идиотские чаты где полностью все постоянно перезагружается...У них может и можно вырубить что-нить. Но у чата по УРЛу который ты дал совсем другой принцип работы.


websqlneeder   (2005-11-27 11:04:00) [3]

Ну так сервер то выдает, но мы сами можем решать какую страницу загрузить (фрейм), а какой нет ... Вот только как это реализовать ...


umbra   (2005-11-25 12:40:00) [4]

я так понял, что речь идет о серверной стороне, а оно оказывается наоборот. Врядли возможно уменьшить траффик, если на сервере это не предусмотрено. В любом случае после запроса сервер выдает все, что есть на запрошенной странице.


nicksss   (2005-11-25 12:36:00) [5]

Мне нужно в Delphi coхранить сайт как текстовый файл (не html, а сам текст)
сайт использует фремы, я пытаюсь к ним достучатся:

for i := 0 to (WebBrowser1.OleObject.Document.frames.Length - 1) do
   memo1.Text:=form1.WebBrowser1.OleObject.Document.frames.item(i).document.queryCommandEnabled('Copy') then
     ShowMessage('copy command is enabled for frame no.' + IntToStr(i));


но выдает ошыбку доступа ...
подскажыте пожалуста, как можна выкрутится?


WebSQLNeeder   (2005-11-25 09:16:00) [6]

..


WebSQLNeeder   (2005-11-19 08:49:00) [7]

Да возьми любой чат и попробуй отключить трафик (загрузку) из фрейма с общими сообщениями - такая проблема актуальна для абсолютно всех чатов. Например, я делаю клиента для http://bizarre.kiev.ua

Мой клиент предназначен для общения людей в привате - так сказать аська но только на основе существующего чата и их людей - и вот мне не нужно что бы мне в программу лезли сообщения из общака - это лишний трафик - а все остальные фреймы должны быть видны - в том числе смайлики, количество людей в комнате и так далее ... И еще нужно так вырезать этот фрейм с общими сообщениями что бы не вылетало сообщение яваскрипт о несуществующем обьекте (это когда я все же вырезал, правда вместе со всеми остальными после него фреймами) то когда происходил рефреш чата и он разумеется попытался обновить этот фрейм с общими сообщениями то просто не нашел его (на сколько я понял) а нужно что бы этот фрейм как бы оставался, но был пустой, потипу about:blank


SergP.   (2005-11-18 17:24:00) [8]

Дай УРЛ того что ты хочешь загрузить и напиши какой фрейм вырубить. Я гляну в чем дело...


WebSQLNeeder   (2005-11-18 15:55:00) [9]

Так вот проблема остается все же как не крути :(

Вот cancel:=true; это отмена загрузки всего документа а не только этого фрейма - я верно понял ?

Потому что я вот попробовал и когда такой фрейм находится то просто останавливается загрузка всех остальных фреймов, которые идут после нужного фрейма. А те фреймы, что были до него успевают загрузиться ...


SergP.   (2005-11-18 12:01:00) [10]


> WebSQLNeeder ©   (17.11.05 12:52) [9]


В таком случае определяй нужный фрейм по УРЛу

procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
 if URL=.... then cancel:=true;
end;


WebSQLNeeder   (2005-11-17 12:52:00) [11]

Ой, понял в чем проблема. Но сразу же встала другая. Дело в том, что на странице находится два вложенных фрейма. И так получилось, что основной фрейм называется main и он включает остальные страницы и имя нужного для удаления фрейма также называется main и вот когда я пытаюсь cancel:=true; применить к main то оно применяется для того самого верхнего фрейма и разумеется ничего больше не грузится.

А как тогда быть, как запретить загрузку именно внутреннего подфрейма?


WebSQLNeeder   (2005-11-17 12:44:00) [12]

Сделал. Фреймы есть и урлы - но проблема мне кажется то в другом.

Вот когда мы делаем cancel:=true; то это останавливает вообще загрузку документа? Или только этого фрейма?

Практическим путем я попробовал и вроде как весь документ перестает грузиться ...


SergP.   (2005-11-17 12:30:00) [13]

Напиши такую фигню:


procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
 const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
 Headers: OleVariant; var Cancel: WordBool);
begin
 memo1.Lines.add('--------------------------');
 memo1.Lines.Add('  Урл-'+url);
 memo1.Lines.add('имя фрейма-'+TargetFrameName);
end;


Загрузи свою страничку и посмотришь есть ли там фреймы (или нечто подобное) и ихние УРЛы и имена.
Часто бывает что фреймы без имени, тогда их приходится по УРЛу вычислять...

У меня есть анкета, только я пароль не помню...
А мыло sergp5566<собака>rambler.ru


WebSQLNeeder   (2005-11-17 10:59:00) [14]

SergP. у вас есть мыло или аська, я смотрю вы в ТВебБраузерах разбираетесь - хотелось бы с вами пообщаться...


WebSQLNeeder   (2005-11-17 10:19:00) [15]

Теперь вообще страница не загружается :(


SergP.   (2005-11-16 20:21:00) [16]

procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
 const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
 Headers: OleVariant; var Cancel: WordBool);
begin
 if TargetFrameName='Имя ненужного фрейма' then cancel:=true;
end;


WebSQLNeeder   (2005-11-16 15:18:00) [17]

..


WebSQLNeeder   (2005-11-08 15:01:00) [18]

Что значит использовать? Страница то не у меня на компе лежит, а на сервере...

Может есть какая то возможность тупо взять и вырезать <frmame ... ?


umbra   (2005-11-08 10:36:00) [19]

использовать другую страницу без фрейма


Наверх

Титульная страница Поиск, карта сайта Написать письмо