亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? deeplinking.js

?? php for flash 之應用試試看
?? JS
字號:
/**
 * ADR
 * remove for debugging
 */
if (!("console" in window) || !("firebug" in console)) {
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

    window.console = {};
    for (var i = 0; i < names.length; ++i) {
        window.console[names[i]] = function() {}
    }
}

DeepLinking = (function() {

    var browser = '';

    // Default app state URL to use when no fragment ID present
    var defaultHash = '';

    // Last-known app state URL
    var currentHref = document.location.href;

    // Initial URL (used only by IE)
    var initialHref = document.location.href;

    // Initial URL (used only by IE)
    var initialHash = document.location.hash;

    // History frame source URL prefix (used only by IE)
    var historyFrameSourcePrefix = 'deeplinking/historyFrame.html?';

    // History maintenance (used only by Safari)
    var currentHistoryLength = -1;

    var historyHash = [];

    var initialState = createState(initialHref, initialHref + '#' + initialHash, initialHash);

	var backStack = [];
	var forwardStack = [];

	// Accessor functions for obtaining specific elements of the page.

	function getHistoryFrame()
	{
		return document.getElementById('historyFrame');
	}

	function getAnchorElement()
	{
		return document.getElementById('anchorDiv');
	}

	function getFormElement()
	{
		return document.getElementById('formDiv');
	}


    /* Get the Flash player object for performing ExternalInterface callbacks. */
    function getPlayer() {
        var player = null; /* AJH, needed?  = document.getElementById(getPlayerId()); */
        
        if (player == null) {
            player = document.getElementsByTagName('object')[0];
        }
        
        if (player == null || player.object == null) {
            player = document.getElementsByTagName('embed')[0];
        }

        return player;
    }

    /* Get the current location hash excluding the '#' symbol. */
    function getHash() {
       // It would be nice if we could use document.location.hash here,
       // but it's faulty sometimes.
       var idx = document.location.href.indexOf('#');
       return (idx >= 0) ? document.location.href.substr(idx+1) : '';
    }

    /* Get the current location hash excluding the '#' symbol. */
    function setHash(hash) {
       // It would be nice if we could use document.location.hash here,
       // but it's faulty sometimes.
       if (hash == '') hash = '#'
       document.location.hash = hash;
    }

    function createState(baseUrl, newUrl, flexAppUrl) {
        return { 'baseUrl': baseUrl, 'newUrl': newUrl, 'flexAppUrl': flexAppUrl, 'title': null };
    }

    /* Add a history entry to the browser.
     *   baseUrl: the portion of the location prior to the '#'
     *   newUrl: the entire new URL, including '#' and following fragment
     *   flexAppUrl: the portion of the location following the '#' only
     */
    function addHistoryEntry(baseUrl, newUrl, flexAppUrl, copyToAddressBar) {

        //delete all the history entries
        forwardStack = [];

        if (browser == 'IE') {
            //Check to see if we are being asked to do a navigate for the first
            //history entry, and if so ignore, because it's coming from the creation
            //of the history iframe
            if (flexAppUrl == defaultHash && document.location.href == initialHref) {
                currentHref = initialHref;
                return;
            }
            if (!flexAppUrl || flexAppUrl == defaultHash) {
                newUrl = baseUrl + '#' + defaultHash;
                flexAppUrl = defaultHash;
            } else {
                // for IE, tell the history frame to go somewhere without a '#'
                // in order to get this entry into the browser history.
                getHistoryFrame().src = historyFrameSourcePrefix + flexAppUrl;
            }
            if (copyToAddressBar) {
                setHash(flexAppUrl);
                //document.location.href = newUrl;
            }
        } else {

            //ADR
			if(backStack.length == 0 && initialState.flexAppUrl == flexAppUrl){
				initialState = createState(baseUrl, newUrl, flexAppUrl);
			}else if(backStack.length > 0 && backStack[backStack.length - 1].flexAppUrl == flexAppUrl){
				backStack[backStack.length - 1] = createState(baseUrl, newUrl, flexAppUrl);
			}

            if (browser == 'Safari') {
                // for Safari, submit a form whose action points to the desired URL
                getFormElement().innerHTML = '<form name="historyForm" action="#' + flexAppUrl + '" method="GET"></form>';
                document.forms.historyForm.submit();
                // We also have to maintain the history by hand for Safari
                historyHash[history.length] = flexAppUrl;
           } else {
                // Otherwise, write an anchor into the page and tell the browser to go there
                addAnchor(flexAppUrl);
                console.info("before setting hash: " + flexAppUrl);
                if (copyToAddressBar) {
                    setHash(flexAppUrl);
                }
           }
        }
		backStack.push(createState(baseUrl, newUrl, flexAppUrl));
    }

	function debugStacks() {
		var str = "backStack: ";
		for (var i = 0; i < backStack.length; i++) {
			str += backStack[i].flexAppUrl + ", ";
		}
		str += "| historyStack: ";
		for (var i = 0; i < forwardStack.length; i++) {
			str += forwardStack[i].flexAppUrl + ", ";
		}
		console.info(str);
	}

	function handleBackButton() {
		//The "current" page is always at the top of the history stack.
		var current = backStack.pop();
		if (!current) { return; }
		var last = backStack[backStack.length - 1];
		if (!last && backStack.length == 0){
			last = initialState;
		}
		forwardStack.push(current);
	}

	function handleForwardButton() {
		//summary: private method. Do not call this directly.

		var last = forwardStack.pop();
		if (!last) { return; }
		backStack.push(last);
	}

	function handleArbitraryUrl() {
        //delete all the history entries
        forwardStack = [];
	}

    /* Called periodically to poll to see if we need to detect navigation that has occurred */
    function checkForUrlChange() {

        if (browser == 'IE') {
            if (currentHref != document.location.href) {

                 //This occurs when the user has navigated to a specific URL
                 //within the app, and didn't use browser back/forward
                 //IE seems to have a bug where it stops updating the URL it
                 //shows the end-user at this point, but programatically it
                 //appears to be correct.  Do a full app reload to get around
                 //this issue.
                 currentHref = document.location.href;
                 document.location.reload();
            }
        } else if (browser == 'Safari') {
            // For Safari, we have to check to see if history.length changed.
            if (currentHistoryLength >= 0 && history.length != currentHistoryLength) {
                // If it did change, then we have to look the old state up
                // in our hand-maintained array since document.location.hash
                // won't have changed, then call back into BrowserManager.
                currentHistoryLength = history.length;
                var flexAppUrl = historyHash[currentHistoryLength];
                if (flexAppUrl == '') {
                    //flexAppUrl = defaultHash;
                }
                getPlayer().browserURLChange(flexAppUrl);
            }
        } else {
            if (currentHref != document.location.href) {
				var bsl = backStack.length;
				debugStacks();

				var urlActions = {
					back: false, 
					forward: false, 
					set: false
				}

				if ((window.location.hash == initialHash || window.location.href == initialHref) && (bsl == 1)) {
					urlActions.back = true;
					// FIXME: could this ever be a forward button?
					// we can't clear it because we still need to check for forwards. Ugg.
					// clearInterval(this.locationTimer);
					handleBackButton();
					console.info("action: back button 1");
				}
				
				// first check to see if we could have gone forward. We always halt on
				// a no-hash item.
				if (forwardStack.length > 0) {
					if (forwardStack[forwardStack.length-1].flexAppUrl == getHash()) {
						urlActions.forward = true;
						handleForwardButton();
						console.info("action: forward button");
					}
				}

				// ok, that didn't work, try someplace back in the history stack
				if ((bsl >= 2) && (backStack[bsl - 2])) {
					console.info("before comparing " + backStack[bsl - 2].flexAppUrl + " with " + getHash());
					if (backStack[bsl - 2].flexAppUrl == getHash()) {
						urlActions.back = true;
						handleBackButton();
						console.info("action: back button 2");
					}
				}

				
				if (!urlActions.back && !urlActions.forward) {
					var foundInStacks = {
						back: -1, 
						forward: -1
					}

					for (var i = 0; i < backStack.length; i++) {
						if (backStack[i].flexAppUrl == getHash() && i != (bsl - 2)) {
							arbitraryUrl = true;
							foundInStacks.back = i;
						}
					}
					for (var i = 0; i < forwardStack.length; i++) {
						if (forwardStack[i].flexAppUrl == getHash() && i != (bsl - 2)) {
							arbitraryUrl = true;
							foundInStacks.forward = i;
						}
					}
					console.info("arbitrary url: " + foundInStacks.back + ", " + foundInStacks.forward);
					handleArbitraryUrl();
				}

                // Firefox changed; do a callback into BrowserManager to tell it.
                currentHref = document.location.href;
                var flexAppUrl = getHash();
                if (flexAppUrl == '') {
                    //flexAppUrl = defaultHash;
                }
                getPlayer().browserURLChange(flexAppUrl);
            }
        }
        setTimeout(checkForUrlChange, 50);
    }

    /* Write an anchor into the page to legitimize it as a URL for Firefox et al. */
    function addAnchor(flexAppUrl)
    {
       if (document.getElementsByName(flexAppUrl).length == 0) {
           getAnchorElement().innerHTML += "<a name='" + flexAppUrl + "'>" + flexAppUrl + "</a>";
       }
    }

    function addEvent(elm, evType, fn, useCapture) {
        useCapture = useCapture || false;
        if (elm.addEventListener) {
            elm.addEventListener(evType, fn, useCapture);
            return true;
        }
        else if (elm.attachEvent) {
            var r = elm.attachEvent('on' + evType, fn);
            return r;
        }
        else {
            elm['on' + evType] = fn;
        }
    }

    function _initialize(src) {
		src = src || historyFrameSourcePrefix;

		var formDiv = document.createElement("div");
		formDiv.id = 'formDiv';
		document.body.appendChild(formDiv);

		var anchorDiv = document.createElement("div");
		anchorDiv.id = 'anchorDiv';
		document.body.appendChild(anchorDiv);
		
		if (browser == "IE") {
			var iframe = document.createElement("iframe");
			iframe.id = 'historyFrame';
			iframe.name = 'historyFrame';
			//iframe.src = historyFrameSourcePrefix;
			document.body.appendChild(iframe);
		}
		
		setTimeout(checkForUrlChange, 50);
    }

    var useragent = navigator.userAgent.toLowerCase();
    if (useragent.indexOf("opera") != -1) {
        browser = "Opera";
    } else if (useragent.indexOf("msie") != -1) {
        browser = 'IE';
    } else if (useragent.indexOf("safari") != -1) {
        browser = "Safari";
    } else if (useragent.indexOf("gecko") != -1) {
        browser = "Firefox";
    }

    return {
		backStack: function() { return backStack; }, 
		forwardStack: function() { return forwardStack }, 
        getPlayer: getPlayer, 
        initialize: function(src) {
            addEvent(window, 'load', function() { _initialize(src) });
        }, 
        setURL: function(url) {
            document.location.href = url;
        }, 
        getURL: function() {
            return document.location.href;
        }, 
        getTitle: function() {
            return document.title;
        }, 
        setTitle: function(title) {
			console.info("DeepLinking.setTitle: " + title);
            try {
			backStack[backStack.length - 1].title = title;
            } catch(e) { }
            document.title = title;
        }, 
        setDefaultURL: function(def)
        {
            console.info("setDefaultURL: " + def);
            defaultHash = def;
            //trailing ? is important else an extra frame gets added to the history
            //when navigating back to the first page.  Alternatively could check
            //in history frame navigation to compare # and ?.
            if (browser == 'IE') {
               getHistoryFrame().src = historyFrameSourcePrefix + defaultHash;
            } else if (browser == 'Safari') {
                currentHistoryLength = history.length;
                historyHash[currentHistoryLength] = defaultHash;
            }
        }, 

        /* Set the current browser URL; called from inside BrowserManager to propagate
         * the application state out to the container.
         */
        setBrowserURL: function(flexAppUrl, copyToAddressBar) {

           //fromIframe = fromIframe || false;
           //fromFlex = fromFlex || false;
           //alert("setBrowserURL: " + flexAppUrl + ", " + fromIframe + ", " + fromFlex);
           flexAppUrl = (flexAppUrl == "") ? defaultHash : flexAppUrl ;
           console.info(">>set url" + flexAppUrl);

           var pos = document.location.href.indexOf('#');
           var baseUrl = pos != -1 ? document.location.href.substr(0, pos) : document.location.href;
           var newUrl = baseUrl + '#' + flexAppUrl;

           if (document.location.href != newUrl && document.location.href + '#' != newUrl) {
               currentHref = newUrl;
               addHistoryEntry(baseUrl, newUrl, flexAppUrl, copyToAddressBar);
               currentHistoryLength = history.length;
           }

           return false;
        }
    }

})();

// Initialization

// Automated unit testing and other diagnostics

function setURL(url)
{
	document.location.href = url;
}

function backButton()
{
	history.back();
}

function forwardButton()
{
	history.forward();
}

function goForwardOrBackInHistory(step)
{
	history.go(step);
}

DeepLinking.initialize();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
看片的网站亚洲| 日韩欧美激情一区| 欧美精品一区二区在线观看| 国产精品色哟哟| 久久99精品久久久久久动态图 | 秋霞午夜鲁丝一区二区老狼| 99re成人精品视频| 久久久久久久免费视频了| 视频一区在线播放| 色综合久久久久综合体| 欧美韩国日本综合| 国产盗摄女厕一区二区三区| 欧美xxxxxxxx| 久久精品国产亚洲aⅴ| 91麻豆精品国产无毒不卡在线观看| 亚洲视频1区2区| 色综合 综合色| 有码一区二区三区| 色94色欧美sute亚洲线路二 | 99riav久久精品riav| 久久嫩草精品久久久精品| 另类中文字幕网| 日韩欧美另类在线| 久久国产生活片100| 9191久久久久久久久久久| 亚洲自拍偷拍综合| 欧美日韩欧美一区二区| 亚洲福利视频一区二区| 欧美色偷偷大香| 亚洲一区二区三区四区五区黄| 一本到一区二区三区| 亚洲欧美偷拍卡通变态| 一本久久a久久精品亚洲| 亚洲精品免费在线观看| 日本道在线观看一区二区| 一区二区三区精品| 欧美日韩国产美女| 免费成人深夜小野草| 精品国产青草久久久久福利| 国产精品综合在线视频| 国产女人18毛片水真多成人如厕| 国产精品性做久久久久久| 中文字幕国产一区| 在线亚洲免费视频| 日韩国产欧美在线播放| 欧美精品一区二区三区在线| 国产成人精品免费网站| 亚洲婷婷综合色高清在线| 欧美日韩免费电影| 免费观看一级特黄欧美大片| 国产日本欧洲亚洲| 日本韩国欧美三级| 日韩av高清在线观看| 国产亚洲精品aa午夜观看| 91麻豆国产精品久久| 日日嗨av一区二区三区四区| 欧美sm美女调教| av不卡在线观看| 丝袜国产日韩另类美女| 久久精品在线免费观看| 欧美综合视频在线观看| 国产米奇在线777精品观看| ●精品国产综合乱码久久久久| 欧美日本国产一区| 成人永久看片免费视频天堂| 亚洲一区二区3| 国产日本欧美一区二区| 欧美日韩一级片在线观看| 国产精品亚洲视频| 日韩1区2区日韩1区2区| 国产精品伦理在线| 欧美xxxx老人做受| 欧美性一区二区| 国产白丝网站精品污在线入口| 性欧美疯狂xxxxbbbb| 国产精品网站一区| 精品播放一区二区| 欧美久久久久免费| 色琪琪一区二区三区亚洲区| 国产一区二区精品久久99| 午夜精品久久久久久久蜜桃app| 欧美国产一区二区| 精品国产区一区| 欧美精品视频www在线观看| 99国产精品99久久久久久| 国内成+人亚洲+欧美+综合在线| 五月天亚洲婷婷| 亚洲精品久久久蜜桃| 国产午夜久久久久| 久久综合狠狠综合久久综合88| 欧美日韩国产美| 欧美性生活一区| 一本到一区二区三区| 成人不卡免费av| 国产精品91一区二区| 久久成人免费网| 视频一区中文字幕| 性感美女极品91精品| 亚洲国产精品久久一线不卡| 亚洲精品国产精品乱码不99| 亚洲婷婷在线视频| 亚洲女子a中天字幕| 中文字幕中文字幕一区| 欧美国产激情一区二区三区蜜月| 日韩精品一区二区三区视频在线观看 | 91伊人久久大香线蕉| 风流少妇一区二区| 国产suv精品一区二区三区| 久久er99热精品一区二区| 久久精品国产一区二区三区免费看| 日本成人在线电影网| 免费亚洲电影在线| 久久不见久久见中文字幕免费| 日韩av一区二区三区| 久久电影国产免费久久电影| 极品美女销魂一区二区三区免费 | 不卡在线观看av| av亚洲产国偷v产偷v自拍| 国产成人一区二区精品非洲| 成人av资源站| 色偷偷成人一区二区三区91| 在线视频国内一区二区| 欧美日韩精品三区| 精品免费国产一区二区三区四区| 精品裸体舞一区二区三区| 欧美精品一区二区久久久| 国产午夜精品美女毛片视频| 国产欧美一区二区在线| 亚洲视频 欧洲视频| 午夜激情综合网| 久久狠狠亚洲综合| av一区二区三区在线| 欧美三电影在线| 精品噜噜噜噜久久久久久久久试看| 久久色.com| 亚洲免费在线观看视频| 亚洲第一成人在线| 国产麻豆成人传媒免费观看| 成人h动漫精品一区二| 欧美日韩一区二区三区高清| 精品国产凹凸成av人网站| 亚洲人吸女人奶水| 奇米一区二区三区| 成人动漫精品一区二区| 欧美色图在线观看| 国产三级三级三级精品8ⅰ区| 亚洲人快播电影网| 激情小说欧美图片| 欧美午夜精品电影| 久久婷婷色综合| 一级中文字幕一区二区| 精品在线免费视频| 91黄色在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 图片区小说区区亚洲影院| 国产盗摄精品一区二区三区在线| 欧美在线|欧美| 亚洲国产高清aⅴ视频| 日韩综合一区二区| 95精品视频在线| 久久这里只有精品6| 亚洲成人资源在线| 91美女片黄在线观看91美女| 精品国产区一区| 图片区小说区国产精品视频| 99久久精品情趣| 精品第一国产综合精品aⅴ| 午夜精品久久久久久久99樱桃| 播五月开心婷婷综合| 欧美videofree性高清杂交| 亚洲一区二区欧美激情| 99久久久精品| 中文字幕欧美激情| 国产一区二区三区免费在线观看| 欧美精品vⅰdeose4hd| 亚洲一区欧美一区| 91一区二区三区在线观看| 欧美国产欧美亚州国产日韩mv天天看完整| 日本强好片久久久久久aaa| 欧美三级在线看| 亚洲美女电影在线| av不卡在线观看| 国产精品家庭影院| 成人国产精品免费观看动漫| 精品成a人在线观看| 久久se这里有精品| 精品国产一区a| 精品一区二区三区免费观看| 欧美一区二区免费| 日韩在线一区二区| 欧美一区二区人人喊爽| 日韩va亚洲va欧美va久久| 在线播放国产精品二区一二区四区| 亚洲伊人色欲综合网| 色婷婷国产精品久久包臀| 亚洲欧美视频一区| 欧美三级午夜理伦三级中视频| 亚洲自拍偷拍网站| 欧美精品vⅰdeose4hd| 欧美a级理论片|