コード例 #1
0
        public UrlItem PopUrlItem(string url)
        {
            if (url.IndexOf(CALLED_AS_POPUP) != -1)
            {
                return(null);
            }
            int popupLevel = GetUrlPopupLevel(url);

            if (referers.ContainsKey(popupLevel))
            {
                if (referers[popupLevel].Count > 0)
                {
                    UrlItem i = referers[popupLevel].Pop();
                    return(i);
                }
            }
            return(null);
        }
コード例 #2
0
        public string GetRefererUrl(string url)
        {
            if (url.IndexOf(CALLED_AS_POPUP) != -1)
            {
                return("");
            }
            int popupLevel = GetUrlPopupLevel(url);

            if (referers.ContainsKey(popupLevel))
            {
                if (referers[popupLevel].Count > 1)
                {
                    UrlItem i       = referers[popupLevel].Pop();
                    string  referer = ((UrlItem)referers[popupLevel].Peek()).url;
                    referers[popupLevel].Push(i);
                    return(referer);
                }
            }
            return("");
        }
コード例 #3
0
        public void PushUrl(string url, bool fromRedirect)
        {
            if (url.IndexOf(CALLED_AS_POPUP) != -1)
            {
                return;
            }
            int     popupLevel = GetUrlPopupLevel(url);
            UrlItem urlItem    = new UrlItem();

            urlItem.redirect = fromRedirect;
            urlItem.url      = url;
            if (!referers.ContainsKey(popupLevel))
            {
                Stack <UrlItem> stack = new Stack <UrlItem>();
                referers.Add(popupLevel, stack);
                stack.Push(urlItem);
            }
            else
            {
                referers[popupLevel].Push(urlItem);
            }
        }