Вверх ↑
Ответов: 537
Рейтинг: 14
#1: 2016-02-24 19:27:22 ЛС | профиль | цитата
Всеравно не работает и куки тут нипричем. Вобщем объясню точно что нужно. У меня есть сайт и на нем стоит скрипт рекламы, если посетитель перейдет на сайт и кликнет на любом месте сайта то один раз загрузится реклама, сам сайт откроется в новой вкладке. Так вот если в моем браузере с вкладкой сделать клик по сайту то реклама откроется, но если снова загрузить сайт и кликнуть, обратно будет открыватся реклама. Вот и не понятно что передается новой вкладке еще, кроме url. Ведь в обычных браузерах реклама открывается только один раз. Если в IE открыть сайт, кликнуть, то в страницу на которой кликнул загрузится реклама, а сайт откроется в новой вкладке и только один раз в сутки. Ну тогда конешно и в моем браузере реклама показыватся не будет. Приходится сначала открыть свой сайт в IE, кликнут, а потом открывать в своей программе, что очень не удобно. Скрипт удалять нехочу, всетаки центы каждый день капают.
Подскажите почему мой браузер не работает как надо, как передать новой вкладке все параметры и какие, чтобы он вел себя как обычный браузер. Я так понимаю теряется сессия. Вот в Headers и куки запихнул, толку ноль.

Вот мои попытки и сам сайт
Make(delphi)
ver(4.05 build 186)
Add(MainForm,3763150,238,224)
{
Width=936
Height=603
}
Add(WebBrowser,7626308,301,301)
{
Top=45
Width=460
Height=520
URL="serseysoft.my1.ru"
Silent=0
Point(NewWindow)
Point(PHandle)
link(NewWindow,7440356:GetData,[])
}
Add(WebBrowser,7727952,399,301)
{
Left=465
Top=45
Width=455
Height=520
URL=""
Silent=0
Point(PHandle)
}
Add(EventFromData,7440356,308,224)
{
link(onEvent,2943768:doEvent1,[])
}
Add(Hub,2943768,350,224)
{
OutCount=5
link(onEvent1,10584606:doData,[(371,230)(371,209)])
link(onEvent2,5430024:doData,[])
link(onEvent3,13980041:doData,[])
link(onEvent4,12538099:SetCookies,[(376,251)(376,307)(303,307)(303,363)])
link(onEvent5,14442675:doNavigate,[(388,258)(388,384)])
}
Add(DoData,10584606,378,203)
{
Data=Integer(1)
link(onEventData,7440356:doData,[(422,209)(422,219)(296,219)(296,230)])
}
Add(InlineCode,14442675,413,378)
{
WorkPoints=#10:doNavigate|
DataPoints=#2:WB|3:Url|3:Ref|5:Cooki|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|40:uses kol,Share,Debug,ActiveX,KOLSHDocVw;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|12: public |32: Cooki,Ref,Url,WB:THI_Event;|3: |50: procedure doNavigate(var dt:TData; idx:WORD);|5: end;|0:|14:implementation|0:|33:procedure THiAsmClass.doNavigate;|3:var|56: Flags, Headers, TargetFrameName, PostData: OLEVariant;|29: _Url, _Ref, _Cooki: string;|25: WebBrowser:PWebBrowser;|5:begin|46: WebBrowser:=PWebBrowser(ToIntegerEvent(WB));|14: Flags := '';|24: TargetFrameName := '';|17: PostData := '';|29: _Url := ReadString(dt,Url);|29: _Ref := ReadString(dt,Ref);|33: _Cooki := ReadString(dt,Cooki);|75: Headers := 'Referer: ' + _Ref + #10 + #13'Cookie: ' + _Cooki + #10 + #13;|71: Webbrowser.Navigate(_Url, Flags, TargetFrameName, PostData, Headers);|4:end;|0:|4:end.|
link(WB,7727952:PHandle,[])
link(Url,5430024:GetData,[])
link(Ref,13980041:GetData,[(433,320)(475,320)])
link(Cooki,12538099:cookies,[(440,366)(380,366)(380,401)(321,401)])
}
Add(EventFromData,5430024,420,231)
{
}
Add(Button,2673751,238,301)
{
Left=10
Top=15
Caption="Сайт"
Data=String(serseysoft.my1.ru)
link(onClick,7626308:doNavigate,[])
}
Add(InlineCode,12538099,315,357)
{
WorkPoints=#10:SetCookies|
VarPoints=#7:cookies|
DataPoints=#7:PHandle|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|48:uses KOLSHDocVw,kol,Share,Debug,Windows,WinInet;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|15: wb:PControl;|9: public|21: PHandle:THI_Event;|44: procedure cookies(var dt:TData;idx:word);|47: procedure SetCookies(var dt:TData;idx:word);|49: procedure ClearCookies(var dt:TData;idx:word);|18: procedure Init;|22: Constructor Create;|5: end;|0:|14:implementation|0:|23:procedure EmptyIECache;|4:Var |43: lpEntryInfo : PInternetCacheEntryInfo; |28: hCacheDir : LongWord; |28: dwEntrySize : LongWord; |28: dwLastError : LongWord; |6:Begin |22: dwEntrySize := 0; |81: FindFirstUrlCacheEntry( NIL, TInternetCacheEntryInfo( NIL^ ), dwEntrySize ); |40: GetMem( lpEntryInfo, dwEntrySize ); |85: hCacheDir := cardinal(FindFirstUrlCacheEntry( NIL, lpEntryInfo^, dwEntrySize )); |31: If ( hCacheDir <> 0 ) Then |63: DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName ); |28: FreeMem( lpEntryInfo ); |11: Repeat |26: dwEntrySize := 0; |90: FindNextUrlCacheEntry( hCacheDir, TInternetCacheEntryInfo( NIL^ ), dwEntrySize ); |39: dwLastError := GetLastError(); |67: If ( GetLastError = ERROR_INSUFFICIENT_BUFFER ) Then Begin |48: GetMem( lpEntryInfo, dwEntrySize ); |86: If ( FindNextUrlCacheEntry( hCacheDir, lpEntryInfo^, dwEntrySize ) ) Then |71: DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName ); |34: FreeMem(lpEntryInfo); |13: End; |49: Until ( dwLastError = ERROR_NO_MORE_ITEMS ); |4:End;|0:|31:constructor THiAsmClass.Create;|5:begin|17: InitAdd(Init);|4:end;|0:|27:procedure THiAsmClass.Init;|5:begin|38:wb:=PControl(ToIntegerEvent(PHandle));|4:end;|0:|30:procedure THiAsmClass.cookies;|5:begin|55:dtString(dt,PWebBrowser(wb).OleObject.Document.cookie);|4:end;|0:|33:procedure THiAsmClass.SetCookies;|5:begin|56:PWebBrowser(wb).OleObject.Document.cookie:=ToString(dt);|4:end;|0:|35:procedure THiAsmClass.ClearCookies;|5:begin|13:EmptyIECache;|4:end;|0:|4:end.|
link(PHandle,7626308:PHandle,[])
}
Add(EventFromData,13980041,469,238)
{
link(Data,7626308:CurrentURL,[(475,226)(391,226)(391,345)(307,345)])
}
Add(InfoTip,16681520,301,336)
{
Info=#4:Куки|
Font=[MS Sans Serif,8,1,0,1]
Height=60
}
Add(InfoTip,4098036,392,357)
{
Info=#7:Переход|
Font=[MS Sans Serif,8,1,0,1]
Height=60
}


------------ Дoбавленo в 19.27:
Неужели никто не знает? Может со второй вкладки в первый браузер тоже что-то передается, в смысле вовторой url, а в первый еще чтото, как их связать друг с другом?
карма: 4

0
файлы: 1code_36981.txt [4.5KB] [371]