![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как со страницы с фреймами на лету убрать один фрейм не нарушая [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]использовать другую страницу без фрейма