//============================================================================================ //通用方法 //传输 var JssdwTrans = { Id: 'jssdwTransScript', url: '', Create: function() { var scriptBlock = document.getElementById(JssdwTrans.Id); if (scriptBlock != null) { document.getElementsByTagName("head")[0].removeChild(scriptBlock); } scriptBlock = document.createElement('SCRIPT'); scriptBlock.id = JssdwTrans.Id; scriptBlock.src = JssdwTrans.url; scriptBlock.type = "text/javascript"; scriptBlock.language = "javascript"; scriptBlock.defer = "defer"; document.getElementsByTagName("head")[0].appendChild(scriptBlock); if (scriptBlock.readyState && navigator.userAgent.toLowerCase().indexOf("opera") == -1) { scriptBlock.onreadystatechange = function() { if ("loaded" == scriptBlock.readyState || "complete" == scriptBlock.readyState) { scriptBlock.onreadystatechange = null; JssdwTrans.Success(); } } } else { scriptBlock.onload = function() { JssdwTrans.Success(); } } }, Success: function() { } }; //根据浏览器功能而非 User-agent 判断浏览器类型 var JssdwBrowser = { Engine: { name: 'unknown', version: 0 }, IsIE: true, Features: { xpath: !!(document.evaluate), // 是否支持 XPath air: !!(window.runtime), // 是否支持 Air 扩展 query: !!(document.querySelector) // 是否支持 CSS 选择器 }, Engines: { // 判断 Opera presto: function() { return (!window.opera) ? false : ((arguments.callee.caller) ? 960 : ((document.getElementsByClassName) ? 950 : 925)); }, // 判断 IE,根据 ActiveX 和 特有的 XMLHttpRequest 对象 trident: function() { return (!window.ActiveXObject) ? false : ((window.XMLHttpRequest) ? 5 : 4); }, // Webkit 核心的浏览器,如 Safari 和 Chrome webkit: function() { return (navigator.taintEnabled) ? false : ((JssdwBrowser.Features.xpath) ? ((JssdwBrowser.Features.query) ? 525 : 420) : 419); }, // Mozilla Gecko 核心浏览器,如 Firefox gecko: function() { return (document.getBoxObjectFor == undefined) ? false : ((document.getElementsByClassName) ? 19 : 18); } }, Detect: function() { for (var engine in this.Engines) { var version = this.Engines[engine](); // 如果具有特定的浏览器对象 if (version) { this.Engine = { name: engine, version: version }; this.Engine[engine] = this.Engine[engine + version] = true; break; } } return { name: engine, version: version }; }, CheckIE: function() { return this.Detect().name == "trident"; } }; //=========================================================================================================== //记录进入页面时间 //var jssdwStartTimeTran = jssdwStartTime.getFullYear() + "-" + jssdwStartTime.getMonth() + "-" + jssdwStartTime.getDate() + " " + jssdwStartTime.getHours() + ":" + jssdwStartTime.getMinutes() + ":" + jssdwStartTime.getSeconds(); var jssdwIntervalId; var jssdwTimeoutId; var jssdwBrowserInfo = JssdwBrowser.Detect(); //页面加载时间 var jssdwPageLoadTime = 0 if (jssdwStartTime) { jssdwPageLoadTime = new Date().getTime() - jssdwStartTime.getTime(); } //是否支持pdf格式 var jssdwIsSupportPdf = (function() { if (jssdwBrowserInfo.name === "gecko" || jssdwBrowserInfo.name === "presto" || jssdwBrowserInfo.name === "webkit") { for (var i = 0; i < window.navigator.plugins.length; i++) { if (navigator.plugins[i].name == 'Adobe Acrobat') { return true; } } return false; } else if (jssdwBrowserInfo.name === "trident") { for (x = 2; x < 10; x++) { try { oAcro = eval("new ActiveXObject('PDF.PdfCtrl." + x + "');"); if (oAcro) { return true; } } catch (e) { } } try { oAcro4 = new ActiveXObject('PDF.PdfCtrl.1'); if (oAcro4) return true; } catch (e) { } try { oAcro7 = new ActiveXObject('AcroPDF.PDF.1'); if (oAcro7) return true; } catch (e) { return false; } return false; } })(); //是否支持flash var jssdwIsSupportFlash = (function() { try { if (window.ActiveXObject) { var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); return (swf) ? true : false; } else { var swf = navigator.plugins["Shockwave Flash"]; if (swf) { var words = swf.description.split(" "); for (var i = 0; i < words.length; i++) { if (words[i] == "Flash") { return true; } } } } } catch (e) { return false; } })(); //是否支持Java var jssdwIsSupportJava = window.navigator.javaEnabled().toString(); //是否支持VBScript var jssdwIsSupportVbscript = (function() { if (document.all) { return true; } return false; })(); //是否支持cookie var jssdwIsSupportCookie = (function() { if (window.navigator.cookiesEnabled) { return true; } document.cookie = "testcookie=yes"; var cookieSet = document.cookie; if (cookieSet.indexOf("testcookie=yes") > -1) { document.cookie = ""; return true; } return false; })(); var jssdwIsSupportActiveX = (function() { if (window.ActiveXObject) { return true; } return false; })(); //系统语言 var jssdwSysLanguage = (function() { if (jssdwBrowserInfo.name === "trident") { return window.navigator.userLanguage; } if (jssdwBrowserInfo.name === "gecko" || jssdwBrowserInfo.name === "presto" || jssdwBrowserInfo.name === "webkit") { return window.navigator.language; } })(); //分辨率 var jssdwResolution = screen.width.toString() + "*" + screen.height.toString(); //操作系统 var jssdwOs = (function() { var plat = navigator.platform; if (plat == "Win32" || plat == "Windows") { var sUserAgent = navigator.userAgent; if (sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1) { return "Win2000"; } if (sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1) { return "WinXP"; } if (sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1) { return "Win2003"; } if (sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7")) { return "windows7"; } else { return escape("其它类型浏览器"); } } if (plat == "Mac68K" || plat == "MacPPC" || plat == "Macintosh" || plat == "MacIntel") { return "Mac"; } if (plat == "X11") { return "Unix"; } if (plat.indexOf("Linux") > -1) { return "Linux"; } else { return escape("其它类型浏览器"); } })(); //浏览器类型----(等待扩展,添加更多种浏览器类型) var jssdwBrowserType = (function() { var sUserAgent = navigator.userAgent.toLowerCase(); if (window.ActiveXObject) { return "IE" + sUserAgent.match(/msie ([\d.]+)/)[1]; } if (sUserAgent.indexOf('firefox') > -1) { return "FireFox" + sUserAgent.match(/firefox\/([\d.]+)/)[1]; } if (sUserAgent.indexOf("chrome") > -1) { return "Chrome" + sUserAgent.match(/chrome\/([\d.]+)/)[1]; } if (sUserAgent.indexOf("opera") > -1) { return "Opera" + sUserAgent.match(/opera.([\d.]+)/)[1]; } if (sUserAgent.indexOf("maxthon") > -1 && sUserAgent.indexOf("safari") > -1) { return "Maxthon" + sUserAgent.match(/maxthon\/([\d.]+)/)[1]; ; } if (sUserAgent.indexOf("safari") > -1) { return "Safari" + sUserAgent.match(/version\/([\d.]+)/)[1]; } else { return sUserAgent; } })(); JssdwTrans.url = "http://juece.jssdw.com/ashx/Collect.ashx?operatingSystem=" + jssdwOs + "&sysLanguage=" + jssdwSysLanguage + "&resolution=" + jssdwResolution + "&browser=" + jssdwBrowserType + "&isSupportJava=" + jssdwIsSupportJava + "&isSupportVbscript=" + jssdwIsSupportVbscript + "&isSupportCookie=" + jssdwIsSupportCookie + "&isSupportActiveX=" + jssdwIsSupportActiveX + "&isSupportPdf=" + jssdwIsSupportPdf + "&isSupportFlash=" + jssdwIsSupportFlash + "&pageLoadTime=" + jssdwPageLoadTime + "&sourcePage=" + encodeURIComponent(document.referrer) + "&inPage=" + encodeURIComponent(location.href); JssdwTrans.Create(); JssdwTrans.Success = function() { //更新关闭时间 JssdwGetOutPageTime(); } //更新关闭时间 var JssdwGetOutPageTime = function() { JssdwTrans.Id = "jssdwCloseTrans"; JssdwTrans.url = "http://juece.jssdw.com/ashx/GetOutPageTime.ashx?pageId=" + jssdwPageId; if (jssdwBrowserInfo.name == "presto") { clearInterval(jssdwIntervalId); jssdwIntervalId = setInterval(function() { JssdwGetOutPageTime(); }, 4000); } else { JssdwTrans.Success = function() { //clearTimeout(jssdwTimeoutId); setTimeout(function() { JssdwGetOutPageTime(); }, 4000); } } JssdwTrans.Create(); }