// JavaScript Document var GJAD = { chooseAble:false, dropAble:false, delStr:false, styleStr:"gj", fn:null, index:1, hideObjArr:new Array(), history_num:0, new_num:0, posX:null, posY:null, sTop:20, mouse_tips:null, selectElement:null, SetFunction:function(fn){ GJAD.fn = fn; }, AddRules:function(rules) { chrome.extension.sendRequest({cmd: "add_rules", rules: rules}, function(response) { }); }, DelRules:function(rules) { chrome.extension.sendRequest({cmd: "del_rules", rules: rules}, function(response) { }); }, Confirm:function(rules) { chrome.extension.sendRequest({cmd: "confirm", rules: rules}, function(response) { }); }, Cancel:function(rules) { chrome.extension.sendRequest({cmd: "cancel", rules: rules}, function(response) { }); }, initHtml:function(str){ var htmlstr = '
'+ '
'+ '
'+ '
'; var liststr = '
'+ '
'+ ''+ '
'+ '

\u60a8\u8fd8\u6ca1\u6709\u521b\u5efa\u81ea\u5df1\u7684\u8fc7\u6ee4\u89c4\u5219~\u8d76\u5feb\u8bd5\u4e00\u4e0b\u5427\uff01

'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
\u5386\u53f2\u6dfb\u52a0\u7684\u89c4\u5219(0)\u5220\u9664\u5168\u90e8
'+ '
'+ '
'+ '
\u5f53\u524d\u9700\u6dfb\u52a0\u7684\u89c4\u5219(0)\u5220\u9664\u5168\u90e8
'+ '
'+ '
'+ '
'+ '\u53d6\u6d88'+ '\u786e\u5b9a'+ '
'+ '
'+ '
'; $("body").append(htmlstr).append(liststr); GJAD.initEvent(); GJAD.initHistory(str); }, initEvent:function(){ $(".clickHide_expand").toggle(function(){ $(this).addClass("clickHide_collapse"); $(this).parents("dl").children("dd").hide(); },function(){ $(this).removeClass("clickHide_collapse"); $(this).parents("dl").children("dd").show(); }); $(".clickHide_title").mousedown(function(e){ GJAD.dropAble = true; var of = $("#clickHide_list").offset(); GJAD.posX = e.clientX - of.left; GJAD.posY = e.clientY - of.top + $(window).scrollTop(); }).mouseup(function(){ GJAD.dropAble = false; GJAD.sTop = $("#clickHide_list").offset().top - $(window).scrollTop(); }); $("#clickHide_list").mouseenter(function(){ $(this).removeClass("clickHide_alpha"); GJAD.chooseAble = false; }).mouseleave(function(){ $(this).addClass("clickHide_alpha"); GJAD.chooseAble = true; }); $("#clickHide_btn_cancel,.clickHide_close").click(function(){GJAD.cancel()}); $("#clickHide_btn_alladd").click(function(){GJAD.allAdd()}); $("#clickHide_history a").click(function(){GJAD.allCancel(0)}); $("#clickHide_new a").click(function(){GJAD.allCancel(1)}); if ($.browser.msie && ($.browser.version == "6.0") && !$.support.style){ $(window).scroll(function(){ $('#clickHide_list').css({"top":$(this).scrollTop() + GJAD.sTop}); }) } }, initHistory:function(str){ if(!str){ return false; } var hobj = str.split("<|>"); if(hobj){ for(var i=0; i")[1]; var elementId = spobj.indexOf("#")>=0 ? spobj : null; var url = spobj.indexOf("http")>=0 ? spobj : null; var elementClasses = spobj.indexOf(".")>=0 ? spobj : null; var type = 1; var title = cutstr($.trim($("title").html()),20); clickHideFilters = new Array(); selectorList = new Array(); if(url){ type = 2; clickHideFilters.push(relativeToAbsoluteUrl(url)); }else{ clickHideFilters.push(document.location.host + "@@" + spobj); } var od_str = document.location.host+'<#>'+spobj+'<#>'+type+'<#>'+title; $("#clickHide_history").append('
'+clickHideFilters[0]+'\u5220\u9664
'); $("#dda_"+GJAD.index).click(function(){ GJAD.delRules(spobj,type,$(this).parents("dd").attr("index"),0); }); $("#clickHide_history").show(); GJAD.history_num+=1; GJAD.index+=1; GJAD.fix_num(); } $("#clickHide_history .clickHide_expand").click(); $(".clickHide_def").hide(); } }, SetStyle:function(str){ GJAD.styleStr = str; }, StartCustom:function(str){ var startEvents=function(){ GJAD.initHtml(str); GJAD.setCover(); GJAD.chooseAble = true; $(document).bind("mouseover",GJAD.clickHide_mouseOver); $(document).bind("mouseout",GJAD.clickHide_mouseOut); $(document).bind("mousedown",GJAD.clickHide_mouseClick); $(document).bind("mousemove",GJAD.clickHide_mouseMove); } if(!document.getElementById("clickHide_list")){ startEvents(); } }, StopCustom:function(){ GJAD.chooseAble = false; GJAD.resetAll(); }, clickHide_mouseOver:function(e){ if(GJAD.chooseAble){ if((e.target.id || e.target.className || e.target.src) && $(e.target).width()<1024){ GJAD.selectElement = e.target; var target_left = $(GJAD.selectElement).offset().left, target_top = $(GJAD.selectElement).offset().top, target_width = $(GJAD.selectElement).innerWidth(), target_height = $(GJAD.selectElement).innerHeight(); $('#clickHide_border_left').css({'left': target_left+ 'px','top': target_top + 'px','height': target_height}); $('#clickHide_border_top').css({'left': target_left+ 'px','top': target_top + 'px','width': target_width}); $('#clickHide_border_right').css({'left': target_left+target_width +'px','top': target_top + 'px','height': target_height}); $('#clickHide_border_bottom').css({'left': target_left+ 'px','top': target_top + target_height+'px','width': target_width+2}); $('.clickHide_border').show(); $(e.target).addClass("clickHide_mouse_normal"); $(".clickHide_mouse_on").show().removeClass("clickHide_mouse_show"); GJAD.mouse_tips = setTimeout("GJAD.showMouseTips()",200); } } }, showMouseTips:function(){ $(".clickHide_mouse_on").addClass("clickHide_mouse_show"); }, clickHide_mouseOut:function(e){ $(e.target).removeClass("clickHide_mouse_normal"); $('.clickHide_border').hide(); clearTimeout(GJAD.mouse_tips); $(".clickHide_mouse_on").hide(); }, clickHide_mouseClick:function(e){ if(!GJAD.chooseAble || !e.target || $(e.target).parents("#clickHide_list").attr("id")=="clickHide_list" || $(e.target).attr("id")=="clickHide_list" || $(e.target).width()>1024){ return false; } $(e.target).removeClass("clickHide_mouse_normal"); var elt = e.target; if(elt.className && elt.className == "gj_adblock_cover") { elt = GJAD.selectElement.prisoner; var url = GJAD.selectElement.prisonerURL; $(e.target).hide(); }else{ var url = elt.src ? normalizeURL(relativeToAbsoluteUrl(elt.src)) : null; } var elementId = elt.id ? elt.id.split(' ').join('') : null; var elementClasses = elt.className ? elt.className.replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, '').split(' ') : null; var type = 1; var od_obj = null; var title = cutstr($.trim($("title").html()),20); clickHideFilters = new Array(); selectorList = new Array(); if(elementId){ od_obj = "#" + elementId; clickHideFilters.push(document.location.host + "@@#" + elementId); }else if(elementClasses) { for(var i = 0; i < elementClasses.length; i++) { selectorList.push("." + elementClasses[i]); clickHideFilters.push(document.location.host + "@@." + elementClasses[i]); } od_obj = selectorList[0]; }else if(url) { type = 2; od_obj = url; clickHideFilters.push(relativeToAbsoluteUrl(url)); } var od_str = document.location.host+'<#>'+od_obj+'<#>'+type+'<#>'+title; if(type==1){ $(od_obj).hide(); //$(e.target).hide(); }else{ $(elt).hide(); $(e.target).hide(); //$("img[src='"+od_obj+"'],embed[src='"+od_obj+"'],iframe[src='"+od_obj+"']").hide(); } if(od_obj!=null){ var ishide = $("#clickHide_new dd:visible").length==0 && GJAD.new_num!=0 ? "none" : "block"; $("#clickHide_new").append('
'+clickHideFilters[0]+'\u5220\u9664
'); $("#dda_"+GJAD.index).click(function(){ GJAD.delRules(od_obj,type,$(this).parents("dd").attr("index"),1); }); $("#clickHide_new").show(); $('.clickHide_border').hide(); $(".clickHide_def").hide(); GJAD.hideObjArr[GJAD.index] = elt; GJAD.new_num+=1; GJAD.index+=1; GJAD.fix_num(); GJAD.setCover(); $(".clickHide_info").scrollTop(999); } e.preventDefault(); return false; }, clickHide_mouseMove:function(e){ $(".clickHide_mouse_on").css({"top":e.pageY,"left":e.pageX+10}); if(GJAD.dropAble){ //var of = $("#clickHide_list").offset(); $("#clickHide_list").css({"top":e.clientY-GJAD.posY,"left":e.clientX-GJAD.posX}); } }, setCover:function(){ $(".gj_adblock_cover").remove(); var elts = $('object:visible,iframe:visible'); for(var i=0; i"+od : GJAD.delStr=od; } $("#"+aobj+" dd[index='"+index+"']").remove(); if(type==1){ $(obj).show(); }else{ //$("img[src='"+obj+"']").show(); $(GJAD.hideObjArr[index]).show(); } GJAD.fix_num(); GJAD.setCover(); return false; }, allCancel:function(ud){ if(ud==1){ $("#clickHide_new dd").each(function(){ $(this).children("a").click(); }) }else{ $("#clickHide_history dd").each(function(){ $(this).children("a").click(); }) } GJAD.fix_num(); }, allAdd:function(){ var tp = ""; $("#clickHide_new dd").each(function(){ if(tp){ tp=tp+"<|>"+$(this).attr("od"); }else{ tp=$(this).attr("od"); } }); GJAD.AddRules(tp); GJAD.DelRules(GJAD.delStr); if(tp!="" || GJAD.delStr){ GJAD.Confirm(); window.location.reload(true); }; GJAD.resetAll(); }, cancel:function(){ if($("#clickHide_new dd:visible").length!=0 || GJAD.delStr){ GJAD.Cancel(); window.location.reload(true); }; GJAD.resetAll(); }, resetAll:function(){ GJAD.chooseAble = false; $(document).unbind("mouseover",GJAD.clickHide_mouseOver); $(document).unbind("mouseout",GJAD.clickHide_mouseOut); $(document).unbind("mousedown",GJAD.clickHide_mouseClick); $(document).unbind("mousemove",GJAD.clickHide_mouseMove); $("#clickHide_border_left,#clickHide_border_right,#clickHide_border_top,#clickHide_border_bottom,#clickHide_list,.clickHide_mouse_on").remove(); $(".gj_adblock_cover").remove(); GJAD.index=1; GJAD.history_num=0; GJAD.new_num=0; }, fix_num:function(){ var total = GJAD.history_num + GJAD.new_num; if(total==0){ $(".clickHide_word_title").html('\u60a8\u8fd8\u6ca1\u6709\u4e3a\u5f53\u524d\u9875\u9762\u5efa\u7acb\u89c4\u5219'); }else{ $(".clickHide_def").hide(); $(".clickHide_word_title").html('\u60a8\u5df2\u4e3a\u5f53\u524d\u9875\u9762\u5efa\u7acb 0 \u6761\u8fc7\u6ee4\u89c4\u5219'); } $("#clickHide_history_num").text(GJAD.history_num); $("#clickHide_new_num").text(GJAD.new_num); $("#clickHide_num").text(total); }, } document.body.onselectstart=function(){ if(GJAD.dropAble){ return false; } } // Extracts source URL from an IMG, OBJECT, EMBED, or IFRAME function getElementURL(elt) { // Check children of object nodes for "param" nodes with name="movie" that specify a URL // in value attribute var url; if(elt.tagName.toUpperCase() == "OBJECT" && !(url = elt.getAttribute("data"))) { // No data attribute, look in PARAM child tags for a URL for the swf file //var params = $(elt).querySelectorAll("param[name=\"movie\"]"); var params = $(elt).children("param[name='movie']"); // This OBJECT could contain an EMBED we already nuked, in which case there's no URL if(params[0]) url = params[0].getAttribute("value"); else { params = $(elt).children("param[name='src']"); if(params[0]) url = params[0].getAttribute("value"); } } else if(!url) { url = elt.getAttribute("src") || elt.getAttribute("href"); } return url; } function relativeToAbsoluteUrl(url){ // If URL is already absolute, don't mess with it if (!url || /^[\w\-]+:/i.test(url)) return url; // Leading / means absolute path if(url[0] == '/') return document.location.protocol + "//" + document.location.host + url; // Remove filename and add relative URL to it var base = document.baseURI.match(/.+\//); if(!base) return document.baseURI + "/" + url; return base[0] + url; } function normalizeURL(url){ var components = url.match(/(.+:\/\/.+?)\/(.*)/); if(!components) return url; var newPath = removeDotSegments(components[2]); if(newPath.length == 0) return components[1]; if(newPath[0] != '/') newPath = '/' + newPath; return components[1] + newPath; } function removeDotSegments(u){ var r = '', m = []; if (/\./.test(u)) { while (u !== undefined && u !== '') { if (u === '.' || u === '..') { u = ''; } else if (/^\.\.\//.test(u)) { // starts with ../ u = u.substring(3); } else if (/^\.\//.test(u)) { // starts with ./ u = u.substring(2); } else if (/^\/\.(\/|$)/.test(u)) { // starts with /./ or consists of /. u = '/' + u.substring(3); } else if (/^\/\.\.(\/|$)/.test(u)) { // starts with /../ or consists of /.. u = '/' + u.substring(4); r = r.replace(/\/?[^\/]+$/, ''); } else { m = u.match(/^(\/?[^\/]*)(\/.*)?$/); u = m[2]; r = r + m[1]; } } return r; } else { return u; } } function cutstr(str,len){ var str_length = 0; var str_len = 0; str_cut = new String(); str_len = str.length; for(var i = 0;i 4){ //中文字符的长度经编码之后大于4 str_length++; } str_cut = str_cut.concat(a); if(str_length>=len){ str_cut = str_cut.concat("..."); return str_cut; } } //如果给定字符串小于指定长度,则返回源字符串; if(str_length