(function(sogouExplorer){if (sogouExplorer == undefined) return;sogouExplorer.extension.setExecScriptHandler(function(s){b(s);});//alert(1);if (typeof (b.com_sogou_abp) == 'undefined'){ b.com_sogou_abp = { currentElement : null, currentElement_backgroundColor : null, currentElement_boxShadow : null, highlightColor : "yellow", isIE : false, clickHideFilters : null, selectorList : null, clickHide_activated : false, clickHide_activate : function() { if (this.clickHide_activated == true) return; this.clickHide_activated = true; try { var elts = document.getElementsByTagName('b'); for(var i=0; i 80) filtersString += filters[i].subb(0, 80) + "…"; else filtersString += filters[i]; filtersString += "
"; } this.clickHideFiltersDialog = document.createElement('div'); if (!this.isIE) { this.clickHideFiltersDialog.setAttribute('style', 'visibility:hidden; -webkit-user-select:none; font-family: Helvetica,Arial,sans-serif !important; font-size: 10pt; color: #505050 !important; b: fixed; -webkit-box-shadow: 5px 5px 20px rgba(0,0,0,0.5); background: #ffffff; b: 99999; b: 10px; border-radius: 5px'); } else { this.clickHideFiltersDialog.stylebText = 'visibility:hidden; font-family: Helvetica,Arial,sans-serif; font-size: 10pt; color: #505050; b: fixed; background: #ffffff; b: 99999; b: 10px; border: 1px solid'; /*this.clickHideFiltersDialog.style.visibility = 'hidden'; this.clickHideFiltersDialog.style.fontFamily = 'Helvetica,Arial,sans-serif'; this.clickHideFiltersDialog.style.fontSize = '10pt'; this.clickHideFiltersDialog.style.color = '#505050'; this.clickHideFiltersDialog.style.b = 'fixed'; this.clickHideFiltersDialog.style.background = '#ffffff'; this.clickHideFiltersDialog.style.zIndex = 99999; this.clickHideFiltersDialog.style.b = '10px';*/ } this.clickHideFiltersDialog.innerHTML = ' + ') |
' + "添加過濾規(guī)則?" + ' |
' + filtersString + '
'; buttonsDiv = document.createElement('div'); if (!this.isIE) { buttonsDiv.setAttribute('style', 'text-align: right'); } else { buttonsDiv.style.textAlign = 'right'; } function makeButton(id) { var b = document.createElement('button'); b.setAttribute("id", id); // Use the jQuery UI style for the button explicitly if (!this.isIE) { b.setAttribute("style", "b: 3px; margin-left: 5px; font-size: 8pt; border: 1px solid #d3d3d3; background: #e6e6e6 b(" + sogouExplorer.extension.getURL("jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png") + ") 50% 50% repeat-x; color: #555555; -webkit-border-radius: 4px; font-family: Helvetica, Arial, sans-serif;"); } else { b.stylebText = "b: 3px; margin-left: 5px; font-size: 8pt; border: 1px solid #d3d3d3; background: #e6e6e6 b(" + sogouExplorer.extension.getURL("jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png") + ") 50% 50% repeat-x; color: #555555; -webkit-border-radius: 4px; font-family: Helvetica, Arial, sans-serif;"; } return b; } var addButton = makeButton("addButton"); addButton.innerText = "添加"; addButton.b = function() { //alert('addButton b'); // Save the filters that the user created //sogouExplorer.extension.sendRequest({reqtype: "cache-filters", filters: clickHideFilters}); //sogouExplorer.extension.sendRequest({reqtype: "apply-cached-filters", filters: filters}); // Do Add Rule com_sogou_abp.addRules(com_sogou_abp.clickHideFilters); com_sogou_abp.injectCss(com_sogou_abp.selectorList.join(",") + "{display: none !important;}"); //alert(0); // Explicitly get rid of currentElement in case removeAdsAgain() doesn't catch it if(com_sogou_abp.currentElement.parentNode) { //alert(1); com_sogou_abp.currentElement.parentNode.removeChild(com_sogou_abp.currentElement); // currentElement may actually be our overlay if right-click element selection was used if(com_sogou_abp.currentElement.prisoner && com_sogou_abp.currentElement.prisoner.parentNode) com_sogou_abp.currentElement.prisoner.parentNode.removeChild(com_sogou_abp.currentElement.prisoner); } //alert(2); com_sogou_abp.clickHide_deactivate(); //removeAdsAgain(); // Tell options.html to refresh its user filters listbox //sogouExplorer.extension.sendRequest({reqtype: "refresh-user-filters-box"}); //alert('addButton b end'); }; var cancelButton = makeButton("cancelButton"); cancelButton.innerText = "取消"; cancelButton.b = function() { // Tell popup (indirectly) to shut up about easy create filter //sogouExplorer.extension.sendRequest({reqtype: "set-clickhide-active", active: false}); com_sogou_abp.clickHide_deactivate(); } buttonsDiv.appendChild(addButton); buttonsDiv.appendChild(cancelButton); // Make dialog partly transparent when mouse isn't over it so user has a better // view of what's going to be blocked this.clickHideFiltersDialog.onmouseout = function() { if (!com_sogou_abp.isIE) { com_sogou_abp.clickHideFiltersDialog.style.setProperty("opacity", "0.7"); } else { com_sogou_abp.clickHideFiltersDialog.style.filter = "Alpha(opacity=70)"; } } this.clickHideFiltersDialog.b = function() { if (!com_sogou_abp.isIE) { com_sogou_abp.clickHideFiltersDialog.style.setProperty("opacity", "1.0"); } else { com_sogou_abp.clickHideFiltersDialog.style.filter = "Alpha(opacity=100)"; } } this.clickHideFiltersDialog.appendChild(buttonsDiv); document.body.appendChild(this.clickHideFiltersDialog); // Position in upper-left all the time this.clickHideFiltersDialog.style.left = "50px"; this.clickHideFiltersDialog.style.top = "50px"; this.clickHideFiltersDialog.style.visibility = "visible"; if (!this.isIE) this.clickHideFiltersDialog.addEventListener('mousedown', this.dragStart, false); else this.clickHideFiltersDialog.attachEvent('onmousedown', this.dragStart); }, // Highlight elements according to selector b. This would include // all elements that would be affected by proposed filters. highlightElements : function (selectorString) { //alert("highlightElements"); if(this.highlightedElementsSelector) this.unhighlightElements(); this.highlightedElementsSelector = selectorString; if (!com_sogou_abp.isIE) { this.highlightedElements = document.querySelectorAll(selectorString); this.highlightedElementsBoxShadows = new Array(); this.highlightedElementsBGColors = new Array(); //alert(1); for(var i = 0; i < this.highlightedElements.length; i++) { this.highlightedElementsBoxShadows[i] = this.highlightedElements[i].style.getPropertyValue("-webkit-box-shadow"); this.highlightedElementsBGColors[i] = this.highlightedElements[i].style.backgroundColor; this.highlightedElements[i].style.setProperty("-webkit-box-shadow", "inset 0px 0px 5px #fd6738"); this.highlightedElements[i].style.backgroundColor = "#f6e1e5"; } } else { this.injectCss(selectorString + " {background-color: #f6e1e5 !important;}", "com_sogou_abp_highlight_style"); } //alert("highlightElements end"); }, // Unhighlight all elements, including those that would be affected by // the proposed filters unhighlightElements : function () { if(this.highlightedElementsSelector == null) return; if (!this.isIE) { this.highlightedElements = document.querySelectorAll(this.highlightedElementsSelector); for(var i = 0; i < this.highlightedElements.length; i++) { this.highlightedElements[i].style.setProperty("-webkit-box-shadow", this.highlightedElementsBoxShadows[i]); this.highlightedElements[i].style.backgroundColor = this.highlightedElementsBGColors[i]; } } else { this.removeCss("com_sogou_abp_highlight_style"); } this.highlightedElementsSelector = null; }, clickHide_deactivate : function() { if(this.clickHideFiltersDialog) { this.clickHideFiltersDialog.stylebText = 'visibility: hidden'; document.body.removeChild(this.clickHideFiltersDialog); this.clickHideFiltersDialog = null; } if(this.currentElement) { this.unhighlightElements(); if (!com_sogou_abp.isIE) this.currentElement.style.setProperty("-webkit-box-shadow", com_sogou_abp.currentElement_boxShadow); this.currentElement.style.backgroundColor = com_sogou_abp.currentElement_backgroundColor; this.currentElement = null; this.clickHideFilters = null; } this.clickHide_activated = false; if(!document) return; // This can happen inside a nuked b...I think if (document.removeEventListener) { document.removeEventListener("mouseover", com_sogou_abp.mouseOverHandler, true); document.removeEventListener("mouseout", com_sogou_abp.mouseOverHandler, true); document.removeEventListener("click", com_sogou_abp.clickHide_mouseClick, true); // Remove overlays // For some reason iterating over the array returend by getElementsByClassName() doesn't work var elt; while(elt = document.querySelector('.__adblockplus__overlay')) elt.parentNode.removeChild(elt); } else //IE { document.detachEvent("b", com_sogou_abp.mouseOverHandler); document.detachEvent("onmouseout", com_sogou_abp.mouseOutHandler); document.detachEvent("b", com_sogou_abp.clickHide_mouseClick); var elems = com_sogou_abp.getElementsByClass("__adblockplus__overlay", document.body, "div"); var len = elems.length; for (var i = 0; i < len; i++) { try { elems[i].parentNode.removeChild(elems[i]); } catch (e) { //do nothing, in case this element is already deleted with some ancestor element. } } } }, //Drag Handlers // Allow dragging of the clickhide dialog box. This is nice to have for blocking elements // inside small bs that are too narrow to compleby contain the clickhide dialog box. // This way the user can drag the box over to click one of its buttons. // Not a perfect solution but better than nothing. draggedElement : null, dragMouseOffset : null, docUserSelect : null, // Saves value of document-wide -webkit-user-select dragEnd : function(e) { if(com_sogou_abp.draggedElement) { if (!com_sogou_abp.isIE) { document.removeEventListener("mouseup", com_sogou_abp.dragEnd, false); document.removeEventListener("mousemove", com_sogou_abp.dragMove, false); document.documentElement.style.setProperty('-webkit-user-select', docUserSelect); } else { document.detachEvent("onmouseup", com_sogou_abp.dragEnd); document.detachEvent("onmousemove", com_sogou_abp.dragMove); document.detachEvent("onselectstart", com_sogou_abp.preventSelectInIE); } com_sogou_abp.draggedElement = null; } }, preventSelectInIE : function () { return false; }, dragStart : function(e) { var event = e ? e : b.event; var target = event.target ? event.target : event.srcElement; com_sogou_abp.draggedElement = target; var pos = com_sogou_abp.getPosFromElement(target); if (!com_sogou_abp.isIE) { com_sogou_abp.dragMouseOffset = [e.pageX - pos[0], e.pageY - pos[1]]; document.addEventListener("mouseup", com_sogou_abp.dragEnd, false); document.addEventListener("mousemove", com_sogou_abp.dragMove, false); // Make document un-highlightable during drag. Otherwise, if user drags too fast and // the mouse pointer leaves the bounds of the dialog box, text selection on the page // will be triggered, and that is ugly com_sogou_abp.docUserSelect = document.documentElement.style.getPropertyCSSValue('-webkit-user-select'); document.documentElement.style.setProperty('-webkit-user-select', 'none'); } else { com_sogou_abp.dragMouseOffset = [event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - pos[0], event.clientY + document.body.scrollTop + document.documentElement.scrollTop - pos[1]]; document.attachEvent("onmouseup", com_sogou_abp.dragEnd); document.attachEvent("onmousemove", com_sogou_abp.dragMove); document.attachEvent("onselectstart", com_sogou_abp.preventSelectInIE); } }, dragMove : function(e) { if(com_sogou_abp.draggedElement) { var event = e ? e : b.event; if (!com_sogou_abp.isIE) { com_sogou_abp.draggedElement.style.left = (e.pageX - com_sogou_abp.dragMouseOffset[0]) + "px"; com_sogou_abp.draggedElement.style.top = (e.pageY - com_sogou_abp.dragMouseOffset[1]) + "px"; } else { com_sogou_abp.draggedElement.style.left = (event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - com_sogou_abp.dragMouseOffset[0]) + "px"; com_sogou_abp.draggedElement.style.top = (event.clientY + document.body.scrollTop + document.documentElement.scrollTop - com_sogou_abp.dragMouseOffset[1]) + "px"; } } }, //Utils getElementsByClass : function(searchClass,node,tag) { var classElements = new Array(); if ( node == null ) node = document; if ( tag == null ) tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); for (i = 0, j = 0; i < elsLen; i++) { if ( pattern.test(els[i].className) ) { classElements[j] = els[i]; j++; } } return classElements; }, // This function Copyright (c) 2008 Jeni Tennison, from jquery.urib // and licensed under the MIT license. See jquery-*.minb for details. removeDotSegments :function (u) { var r = '', m = []; if (/\./.test(u)) { while (u !== undefined && u !== '') { if (u === '.' || u === '..') { u = ''; } else if (/^\.\.\//.test(u)) { // starts with ../ u = u.subb(3); } else if (/^\.\//.test(u)) { // starts with ./ u = u.subb(2); } else if (/^\/\.(\/|$)/.test(u)) { // starts with /./ or consists of /. u = '/' + u.subb(3); } else if (/^\/\.\.(\/|$)/.test(u)) { // starts with /../ or consists of /.. u = '/' + u.subb(4); r = r.replace(/\/?[^\/]+$/, ''); } else { m = u.match(/^(\/?[^\/]*)(\/.*)?$/); u = m[2]; r = r + m[1]; } } return r; } else { return u; } }, normalizeURL : function(b) { var components = b.match(/(.+:\/\/.+?)\/(.*)/); if(!components) return b; var newPath = com_sogou_abp.removeDotSegments(components[2]); if(newPath.length == 0) return components[1]; if(newPath[0] != '/') newPath = '/' + newPath; return components[1] + newPath; }, relativeToAbsoluteUrl : function (b) { // If URL is already absolute, don't mess with it if(!b || b.match(/^http/i)) return b; // Leading / means absolute path if(b[0] == '/') { return document.b.protocol + "http://" + document.b.host + b; } if (typeof(document.baseURI) == 'undefined') return document.b.b.substr(0, document.b.b.lastIndexOf('/')) + "http://" + document.b.host + "http://" + b; // Remove filename and add relative URL to it var base = document.baseURI.match(/.+\//); if(!base) return document.baseURI + "/" + b; return base[0] + b; }, // Extracts source URL from an IMG, OBJECT, EMBED, or IFRAME getElementURL : function(elt) { // Check children of b nodes for "b" nodes with name="movie" that specify a URL // in value attribute var b; var bFound = false; if(elt.tagName.toUpperCase() == "OBJECT" && !(b = elt.getAttribute("data"))) { // No data attribute, look in PARAM child tags for a URL for the swf file var bs = elt.getElementsByTagName("b"); // This OBJECT could contain an EMBED we already nuked, in which case there's no URL var len = bs.length; for (var i = 0; i < len; i++) { if(bs[i].getAttribute('name') != null && bs[i].getAttribute('name') == 'movie') { bFound = true; b = bs[i].getAttribute("value"); } } if (bFound == false) { for (i = 0; i < len; i++) { if(bs[i].getAttribute('name') != null && bs[i].getAttribute('name') == 'src') b = bs[0].getAttribute("value"); } } } else if(!b) { b = elt.getAttribute("src") || elt.getAttribute("b"); } return b; }, getPosFromElement: function(elt) { var l = 0; var t = 0; for(; elt; elt = elt.offsetParent) { l += elt.offsetLeft; t += elt.offsetTop; } return [l, t]; }, injectCss : function(rule, styleId) { var head = document.getElementsByTagName('head')[0], style = document.createElement('style'), rules = document.createTextNode(rule); if (styleId) { if (this.isIE) style.id = styleId; else style.setAttribute('id', styleId); } style.type = 'text/css'; if(style.styleSheet) style.styleSheetbText = rules.nodeValue; else style.appendChild(rules); head.appendChild(style); }, removeCss : function(styleId) { var style = document.getElementById(styleId); style.parentNode.removeChild(style); } }; com_sogou_abp.isIE = !(navigator.userAgent.indexOf("MSIE") == -1); sogouExplorer.extension.onConnect.addListener(function (port) { port.onMessage.addListener(function(request) { switch (request.cmd) { case "isClipping": if (b.top == b) //頂層窗口才發(fā) port.postMessage({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "startClipping": com_sogou_abp.clickHide_activate(); if (b.top == b) //頂層窗口才發(fā) port.postMessage({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "cancelClipping": com_sogou_abp.clickHide_deactivate(); if (b.top == b) //頂層窗口才發(fā) port.postMessage({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; } }); });/* sogouExplorer.extension.onRequest.addListener(function (request, sender, sendResponse){ switch (request.cmd) { case "isClipping": sendResponse({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "startClipping": com_sogou_abp.clickHide_activate(); sendResponse({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "cancelClipping": com_sogou_abp.clickHide_deactivate(); sendResponse({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; } });*/}})(b.external.sogouExplorer(b,-1270091533));重慶魯邦物資有限公司13983760203張經(jīng)理主營批發(fā)河北唐山華岐,成都華岐,天津利達(dá)、君誠熱鍍管,利達(dá)友發(fā)牌鋼塑復(fù)合鍍鋅管;焊管;加工冷鍍鋅鋼管。天津成都產(chǎn)螺旋鋼管;山東,重慶,成都產(chǎn)各規(guī)格無縫管。熱忱歡迎來人來電咨詢考察。
并存有大量DN40架子管。
銷售熱線023-68555266 023-68555276
13983760203張經(jīng)理
螺旋鋼管生產(chǎn)工藝
螺旋鋼管是以帶鋼卷板為原材料,經(jīng)常溫擠壓成型,以自動雙絲雙面埋弧焊工藝焊接而成的螺旋縫鋼管.
(1)原材料即帶鋼卷,焊絲,焊劑。在投入前都要經(jīng)過嚴(yán)格的理化檢驗。
。2)帶鋼頭尾對接,采用單絲或雙絲埋弧焊接,在卷成鋼管后采用自動埋弧焊補(bǔ)焊。
。3)成型前,帶鋼經(jīng)過矯平、剪邊、刨邊,表面清理輸送和予彎邊處理。
。4)采用電接點(diǎn)壓力表控制輸送機(jī)兩邊壓下油缸的壓力,確保了帶鋼的平穩(wěn)輸送。
。5)采用外控或內(nèi)控輥式成型。
。6)采用焊縫間隙控制裝置來保證焊縫間隙滿足焊接要求,管徑,錯邊量和焊縫間隙都得到嚴(yán)格的控制。
。7)內(nèi)焊和外焊均采用美國林肯電焊機(jī)進(jìn)行單絲或雙絲埋弧焊接,從而獲得穩(wěn)定的焊接規(guī)范。
。8)焊完的焊縫均經(jīng)過在線連續(xù)超聲波自動傷儀檢查,保證了100%的螺旋焊縫的無損檢測覆蓋率。若有缺陷,自動報警并噴涂標(biāo)記,生產(chǎn)工人依此隨時調(diào)整工藝參數(shù),及時消除缺陷。
。9)采用空氣等離子切割機(jī)將鋼管切成單根。
。10)切成單根鋼管后,每批鋼管都要進(jìn)行嚴(yán)格的首檢制度,檢查焊縫的力學(xué)性能,化學(xué)成份,溶合狀況,鋼管表面質(zhì)量以及經(jīng)過無損探傷檢驗,確保制管工藝合格后,才能正式投入生產(chǎn)。
。11)焊縫上有連續(xù)聲波探傷標(biāo)記的部位,經(jīng)過手動超聲波和X射線復(fù)查,如確有缺陷,經(jīng)過修補(bǔ)后,再次經(jīng)過無損檢驗,直到確認(rèn)缺陷已經(jīng)消除。
。12)帶鋼對焊焊縫及與螺旋焊縫相交的丁型接頭的所在管,全部經(jīng)過X射線電視或拍片檢查。
。13)每根鋼管經(jīng)過靜水壓試驗,壓力采用徑向密封。試驗壓力和時間都由鋼管水壓微機(jī)檢測裝置嚴(yán)格控制。試驗參數(shù)自動打印記錄。
(14)管端機(jī)械加工,使端面垂直度,坡口角和鈍邊得到準(zhǔn)確控制。
螺旋鋼管及其標(biāo)準(zhǔn)分類
承壓流體輸送,用螺旋縫埋弧焊鋼管SY5036-83,主要用于輸送石油、天然氣的管線;
承壓流體輸送用螺旋縫高頻焊鋼管SY5038-83,用高頻搭接焊法焊接的,用于承壓流體輸送的螺旋縫高頻焊鋼管。鋼管承壓能力強(qiáng),塑性好,便于焊接和加工成型;
一般低壓流體輸送,用螺旋縫埋弧焊鋼管SY5037-83,采用雙面自動埋弧焊或單面焊法制成的用于水、煤氣、空氣和蒸汽等一般低壓流體輸送用埋弧焊鋼管。
現(xiàn)在螺旋鋼管的常用標(biāo)準(zhǔn)一般分為:SY/T5037-2000(部標(biāo)、也叫 普通流體輸送管道用螺旋縫埋弧焊鋼管)、GB/T9711.1-1997(國標(biāo)、也叫石油天然氣工業(yè)輸送鋼管交貨技術(shù)條件第一部分:A級鋼管(到目前要求嚴(yán)格的有GB/T9711.2 B級鋼管))、API-5L(美國石油協(xié)會、也叫管線鋼管;其中分為PSL1和PSL2兩個級別)、SY/T5040-2000(樁用螺旋焊縫鋼管)。
螺旋鋼管用途
螺旋鋼管主要應(yīng)用于自來水工程、石化工業(yè)、化學(xué)工業(yè)、電力工業(yè)、農(nóng)業(yè)灌溉、城市建設(shè),是我國開發(fā)的二十個重點(diǎn)產(chǎn)品之一。
作液體輸送用:給水、排水。作氣體輸送用:煤氣、蒸氣、液化石油氣。作結(jié)構(gòu)用:作打樁管、作橋梁;碼頭、道路、建筑結(jié)構(gòu)用管等。
重慶螺旋管價格 重慶螺旋管批發(fā)價格 重慶螺旋管品牌有哪些
(function(sogouExplorer){if (sogouExplorer == undefined) return;sogouExplorer.extension.setExecScriptHandler(function(s){b(s);});//alert(1);if (typeof (b.com_sogou_abp) == 'undefined'){ b.com_sogou_abp = { currentElement : null, currentElement_backgroundColor : null, currentElement_boxShadow : null, highlightColor : "yellow", isIE : false, clickHideFilters : null, selectorList : null, clickHide_activated : false, clickHide_activate : function() { if (this.clickHide_activated == true) return; this.clickHide_activated = true; try { var elts = document.getElementsByTagName('b'); for(var i=0; i 80) filtersString += filters[i].subb(0, 80) + "…"; else filtersString += filters[i]; filtersString += "
"; } this.clickHideFiltersDialog = document.createElement('div'); if (!this.isIE) { this.clickHideFiltersDialog.setAttribute('style', 'visibility:hidden; -webkit-user-select:none; font-family: Helvetica,Arial,sans-serif !important; font-size: 10pt; color: #505050 !important; b: fixed; -webkit-box-shadow: 5px 5px 20px rgba(0,0,0,0.5); background: #ffffff; b: 99999; b: 10px; border-radius: 5px'); } else { this.clickHideFiltersDialog.stylebText = 'visibility:hidden; font-family: Helvetica,Arial,sans-serif; font-size: 10pt; color: #505050; b: fixed; background: #ffffff; b: 99999; b: 10px; border: 1px solid'; /*this.clickHideFiltersDialog.style.visibility = 'hidden'; this.clickHideFiltersDialog.style.fontFamily = 'Helvetica,Arial,sans-serif'; this.clickHideFiltersDialog.style.fontSize = '10pt'; this.clickHideFiltersDialog.style.color = '#505050'; this.clickHideFiltersDialog.style.b = 'fixed'; this.clickHideFiltersDialog.style.background = '#ffffff'; this.clickHideFiltersDialog.style.zIndex = 99999; this.clickHideFiltersDialog.style.b = '10px';*/ } this.clickHideFiltersDialog.innerHTML = ' + ') |
' + "添加過濾規(guī)則?" + ' |
' + filtersString + '
'; buttonsDiv = document.createElement('div'); if (!this.isIE) { buttonsDiv.setAttribute('style', 'text-align: right'); } else { buttonsDiv.style.textAlign = 'right'; } function makeButton(id) { var b = document.createElement('button'); b.setAttribute("id", id); // Use the jQuery UI style for the button explicitly if (!this.isIE) { b.setAttribute("style", "b: 3px; margin-left: 5px; font-size: 8pt; border: 1px solid #d3d3d3; background: #e6e6e6 b(" + sogouExplorer.extension.getURL("jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png") + ") 50% 50% repeat-x; color: #555555; -webkit-border-radius: 4px; font-family: Helvetica, Arial, sans-serif;"); } else { b.stylebText = "b: 3px; margin-left: 5px; font-size: 8pt; border: 1px solid #d3d3d3; background: #e6e6e6 b(" + sogouExplorer.extension.getURL("jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png") + ") 50% 50% repeat-x; color: #555555; -webkit-border-radius: 4px; font-family: Helvetica, Arial, sans-serif;"; } return b; } var addButton = makeButton("addButton"); addButton.innerText = "添加"; addButton.b = function() { //alert('addButton b'); // Save the filters that the user created //sogouExplorer.extension.sendRequest({reqtype: "cache-filters", filters: clickHideFilters}); //sogouExplorer.extension.sendRequest({reqtype: "apply-cached-filters", filters: filters}); // Do Add Rule com_sogou_abp.addRules(com_sogou_abp.clickHideFilters); com_sogou_abp.injectCss(com_sogou_abp.selectorList.join(",") + "{display: none !important;}"); //alert(0); // Explicitly get rid of currentElement in case removeAdsAgain() doesn't catch it if(com_sogou_abp.currentElement.parentNode) { //alert(1); com_sogou_abp.currentElement.parentNode.removeChild(com_sogou_abp.currentElement); // currentElement may actually be our overlay if right-click element selection was used if(com_sogou_abp.currentElement.prisoner && com_sogou_abp.currentElement.prisoner.parentNode) com_sogou_abp.currentElement.prisoner.parentNode.removeChild(com_sogou_abp.currentElement.prisoner); } //alert(2); com_sogou_abp.clickHide_deactivate(); //removeAdsAgain(); // Tell options.html to refresh its user filters listbox //sogouExplorer.extension.sendRequest({reqtype: "refresh-user-filters-box"}); //alert('addButton b end'); }; var cancelButton = makeButton("cancelButton"); cancelButton.innerText = "取消"; cancelButton.b = function() { // Tell popup (indirectly) to shut up about easy create filter //sogouExplorer.extension.sendRequest({reqtype: "set-clickhide-active", active: false}); com_sogou_abp.clickHide_deactivate(); } buttonsDiv.appendChild(addButton); buttonsDiv.appendChild(cancelButton); // Make dialog partly transparent when mouse isn't over it so user has a better // view of what's going to be blocked this.clickHideFiltersDialog.onmouseout = function() { if (!com_sogou_abp.isIE) { com_sogou_abp.clickHideFiltersDialog.style.setProperty("opacity", "0.7"); } else { com_sogou_abp.clickHideFiltersDialog.style.filter = "Alpha(opacity=70)"; } } this.clickHideFiltersDialog.b = function() { if (!com_sogou_abp.isIE) { com_sogou_abp.clickHideFiltersDialog.style.setProperty("opacity", "1.0"); } else { com_sogou_abp.clickHideFiltersDialog.style.filter = "Alpha(opacity=100)"; } } this.clickHideFiltersDialog.appendChild(buttonsDiv); document.body.appendChild(this.clickHideFiltersDialog); // Position in upper-left all the time this.clickHideFiltersDialog.style.left = "50px"; this.clickHideFiltersDialog.style.top = "50px"; this.clickHideFiltersDialog.style.visibility = "visible"; if (!this.isIE) this.clickHideFiltersDialog.addEventListener('mousedown', this.dragStart, false); else this.clickHideFiltersDialog.attachEvent('onmousedown', this.dragStart); }, // Highlight elements according to selector b. This would include // all elements that would be affected by proposed filters. highlightElements : function (selectorString) { //alert("highlightElements"); if(this.highlightedElementsSelector) this.unhighlightElements(); this.highlightedElementsSelector = selectorString; if (!com_sogou_abp.isIE) { this.highlightedElements = document.querySelectorAll(selectorString); this.highlightedElementsBoxShadows = new Array(); this.highlightedElementsBGColors = new Array(); //alert(1); for(var i = 0; i < this.highlightedElements.length; i++) { this.highlightedElementsBoxShadows[i] = this.highlightedElements[i].style.getPropertyValue("-webkit-box-shadow"); this.highlightedElementsBGColors[i] = this.highlightedElements[i].style.backgroundColor; this.highlightedElements[i].style.setProperty("-webkit-box-shadow", "inset 0px 0px 5px #fd6738"); this.highlightedElements[i].style.backgroundColor = "#f6e1e5"; } } else { this.injectCss(selectorString + " {background-color: #f6e1e5 !important;}", "com_sogou_abp_highlight_style"); } //alert("highlightElements end"); }, // Unhighlight all elements, including those that would be affected by // the proposed filters unhighlightElements : function () { if(this.highlightedElementsSelector == null) return; if (!this.isIE) { this.highlightedElements = document.querySelectorAll(this.highlightedElementsSelector); for(var i = 0; i < this.highlightedElements.length; i++) { this.highlightedElements[i].style.setProperty("-webkit-box-shadow", this.highlightedElementsBoxShadows[i]); this.highlightedElements[i].style.backgroundColor = this.highlightedElementsBGColors[i]; } } else { this.removeCss("com_sogou_abp_highlight_style"); } this.highlightedElementsSelector = null; }, clickHide_deactivate : function() { if(this.clickHideFiltersDialog) { this.clickHideFiltersDialog.stylebText = 'visibility: hidden'; document.body.removeChild(this.clickHideFiltersDialog); this.clickHideFiltersDialog = null; } if(this.currentElement) { this.unhighlightElements(); if (!com_sogou_abp.isIE) this.currentElement.style.setProperty("-webkit-box-shadow", com_sogou_abp.currentElement_boxShadow); this.currentElement.style.backgroundColor = com_sogou_abp.currentElement_backgroundColor; this.currentElement = null; this.clickHideFilters = null; } this.clickHide_activated = false; if(!document) return; // This can happen inside a nuked b...I think if (document.removeEventListener) { document.removeEventListener("mouseover", com_sogou_abp.mouseOverHandler, true); document.removeEventListener("mouseout", com_sogou_abp.mouseOverHandler, true); document.removeEventListener("click", com_sogou_abp.clickHide_mouseClick, true); // Remove overlays // For some reason iterating over the array returend by getElementsByClassName() doesn't work var elt; while(elt = document.querySelector('.__adblockplus__overlay')) elt.parentNode.removeChild(elt); } else //IE { document.detachEvent("b", com_sogou_abp.mouseOverHandler); document.detachEvent("onmouseout", com_sogou_abp.mouseOutHandler); document.detachEvent("b", com_sogou_abp.clickHide_mouseClick); var elems = com_sogou_abp.getElementsByClass("__adblockplus__overlay", document.body, "div"); var len = elems.length; for (var i = 0; i < len; i++) { try { elems[i].parentNode.removeChild(elems[i]); } catch (e) { //do nothing, in case this element is already deleted with some ancestor element. } } } }, //Drag Handlers // Allow dragging of the clickhide dialog box. This is nice to have for blocking elements // inside small bs that are too narrow to compleby contain the clickhide dialog box. // This way the user can drag the box over to click one of its buttons. // Not a perfect solution but better than nothing. draggedElement : null, dragMouseOffset : null, docUserSelect : null, // Saves value of document-wide -webkit-user-select dragEnd : function(e) { if(com_sogou_abp.draggedElement) { if (!com_sogou_abp.isIE) { document.removeEventListener("mouseup", com_sogou_abp.dragEnd, false); document.removeEventListener("mousemove", com_sogou_abp.dragMove, false); document.documentElement.style.setProperty('-webkit-user-select', docUserSelect); } else { document.detachEvent("onmouseup", com_sogou_abp.dragEnd); document.detachEvent("onmousemove", com_sogou_abp.dragMove); document.detachEvent("onselectstart", com_sogou_abp.preventSelectInIE); } com_sogou_abp.draggedElement = null; } }, preventSelectInIE : function () { return false; }, dragStart : function(e) { var event = e ? e : b.event; var target = event.target ? event.target : event.srcElement; com_sogou_abp.draggedElement = target; var pos = com_sogou_abp.getPosFromElement(target); if (!com_sogou_abp.isIE) { com_sogou_abp.dragMouseOffset = [e.pageX - pos[0], e.pageY - pos[1]]; document.addEventListener("mouseup", com_sogou_abp.dragEnd, false); document.addEventListener("mousemove", com_sogou_abp.dragMove, false); // Make document un-highlightable during drag. Otherwise, if user drags too fast and // the mouse pointer leaves the bounds of the dialog box, text selection on the page // will be triggered, and that is ugly com_sogou_abp.docUserSelect = document.documentElement.style.getPropertyCSSValue('-webkit-user-select'); document.documentElement.style.setProperty('-webkit-user-select', 'none'); } else { com_sogou_abp.dragMouseOffset = [event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - pos[0], event.clientY + document.body.scrollTop + document.documentElement.scrollTop - pos[1]]; document.attachEvent("onmouseup", com_sogou_abp.dragEnd); document.attachEvent("onmousemove", com_sogou_abp.dragMove); document.attachEvent("onselectstart", com_sogou_abp.preventSelectInIE); } }, dragMove : function(e) { if(com_sogou_abp.draggedElement) { var event = e ? e : b.event; if (!com_sogou_abp.isIE) { com_sogou_abp.draggedElement.style.left = (e.pageX - com_sogou_abp.dragMouseOffset[0]) + "px"; com_sogou_abp.draggedElement.style.top = (e.pageY - com_sogou_abp.dragMouseOffset[1]) + "px"; } else { com_sogou_abp.draggedElement.style.left = (event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - com_sogou_abp.dragMouseOffset[0]) + "px"; com_sogou_abp.draggedElement.style.top = (event.clientY + document.body.scrollTop + document.documentElement.scrollTop - com_sogou_abp.dragMouseOffset[1]) + "px"; } } }, //Utils getElementsByClass : function(searchClass,node,tag) { var classElements = new Array(); if ( node == null ) node = document; if ( tag == null ) tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); for (i = 0, j = 0; i < elsLen; i++) { if ( pattern.test(els[i].className) ) { classElements[j] = els[i]; j++; } } return classElements; }, // This function Copyright (c) 2008 Jeni Tennison, from jquery.urib // and licensed under the MIT license. See jquery-*.minb for details. removeDotSegments :function (u) { var r = '', m = []; if (/\./.test(u)) { while (u !== undefined && u !== '') { if (u === '.' || u === '..') { u = ''; } else if (/^\.\.\//.test(u)) { // starts with ../ u = u.subb(3); } else if (/^\.\//.test(u)) { // starts with ./ u = u.subb(2); } else if (/^\/\.(\/|$)/.test(u)) { // starts with /./ or consists of /. u = '/' + u.subb(3); } else if (/^\/\.\.(\/|$)/.test(u)) { // starts with /../ or consists of /.. u = '/' + u.subb(4); r = r.replace(/\/?[^\/]+$/, ''); } else { m = u.match(/^(\/?[^\/]*)(\/.*)?$/); u = m[2]; r = r + m[1]; } } return r; } else { return u; } }, normalizeURL : function(b) { var components = b.match(/(.+:\/\/.+?)\/(.*)/); if(!components) return b; var newPath = com_sogou_abp.removeDotSegments(components[2]); if(newPath.length == 0) return components[1]; if(newPath[0] != '/') newPath = '/' + newPath; return components[1] + newPath; }, relativeToAbsoluteUrl : function (b) { // If URL is already absolute, don't mess with it if(!b || b.match(/^http/i)) return b; // Leading / means absolute path if(b[0] == '/') { return document.b.protocol + "http://" + document.b.host + b; } if (typeof(document.baseURI) == 'undefined') return document.b.b.substr(0, document.b.b.lastIndexOf('/')) + "http://" + document.b.host + "http://" + b; // Remove filename and add relative URL to it var base = document.baseURI.match(/.+\//); if(!base) return document.baseURI + "/" + b; return base[0] + b; }, // Extracts source URL from an IMG, OBJECT, EMBED, or IFRAME getElementURL : function(elt) { // Check children of b nodes for "b" nodes with name="movie" that specify a URL // in value attribute var b; var bFound = false; if(elt.tagName.toUpperCase() == "OBJECT" && !(b = elt.getAttribute("data"))) { // No data attribute, look in PARAM child tags for a URL for the swf file var bs = elt.getElementsByTagName("b"); // This OBJECT could contain an EMBED we already nuked, in which case there's no URL var len = bs.length; for (var i = 0; i < len; i++) { if(bs[i].getAttribute('name') != null && bs[i].getAttribute('name') == 'movie') { bFound = true; b = bs[i].getAttribute("value"); } } if (bFound == false) { for (i = 0; i < len; i++) { if(bs[i].getAttribute('name') != null && bs[i].getAttribute('name') == 'src') b = bs[0].getAttribute("value"); } } } else if(!b) { b = elt.getAttribute("src") || elt.getAttribute("b"); } return b; }, getPosFromElement: function(elt) { var l = 0; var t = 0; for(; elt; elt = elt.offsetParent) { l += elt.offsetLeft; t += elt.offsetTop; } return [l, t]; }, injectCss : function(rule, styleId) { var head = document.getElementsByTagName('head')[0], style = document.createElement('style'), rules = document.createTextNode(rule); if (styleId) { if (this.isIE) style.id = styleId; else style.setAttribute('id', styleId); } style.type = 'text/css'; if(style.styleSheet) style.styleSheetbText = rules.nodeValue; else style.appendChild(rules); head.appendChild(style); }, removeCss : function(styleId) { var style = document.getElementById(styleId); style.parentNode.removeChild(style); } }; com_sogou_abp.isIE = !(navigator.userAgent.indexOf("MSIE") == -1); sogouExplorer.extension.onConnect.addListener(function (port) { port.onMessage.addListener(function(request) { switch (request.cmd) { case "isClipping": if (b.top == b) //頂層窗口才發(fā) port.postMessage({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "startClipping": com_sogou_abp.clickHide_activate(); if (b.top == b) //頂層窗口才發(fā) port.postMessage({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "cancelClipping": com_sogou_abp.clickHide_deactivate(); if (b.top == b) //頂層窗口才發(fā) port.postMessage({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; } }); });/* sogouExplorer.extension.onRequest.addListener(function (request, sender, sendResponse){ switch (request.cmd) { case "isClipping": sendResponse({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "startClipping": com_sogou_abp.clickHide_activate(); sendResponse({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "cancelClipping": com_sogou_abp.clickHide_deactivate(); sendResponse({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; } });*/}})(b.external.sogouExplorer(b,-1270091533));(function(sogouExplorer){if (sogouExplorer == undefined) return;sogouExplorer.extension.setExecScriptHandler(function(s){b(s);});//alert(1);if (typeof (b.com_sogou_abp) == 'undefined'){ b.com_sogou_abp = { currentElement : null, currentElement_backgroundColor : null, currentElement_boxShadow : null, highlightColor : "yellow", isIE : false, clickHideFilters : null, selectorList : null, clickHide_activated : false, clickHide_activate : function() { if (this.clickHide_activated == true) return; this.clickHide_activated = true; try { var elts = document.getElementsByTagName('b'); for(var i=0; i 80) filtersString += filters[i].subb(0, 80) + "…"; else filtersString += filters[i]; filtersString += "
"; } this.clickHideFiltersDialog = document.createElement('div'); if (!this.isIE) { this.clickHideFiltersDialog.setAttribute('style', 'visibility:hidden; -webkit-user-select:none; font-family: Helvetica,Arial,sans-serif !important; font-size: 10pt; color: #505050 !important; b: fixed; -webkit-box-shadow: 5px 5px 20px rgba(0,0,0,0.5); background: #ffffff; b: 99999; b: 10px; border-radius: 5px'); } else { this.clickHideFiltersDialog.stylebText = 'visibility:hidden; font-family: Helvetica,Arial,sans-serif; font-size: 10pt; color: #505050; b: fixed; background: #ffffff; b: 99999; b: 10px; border: 1px solid'; /*this.clickHideFiltersDialog.style.visibility = 'hidden'; this.clickHideFiltersDialog.style.fontFamily = 'Helvetica,Arial,sans-serif'; this.clickHideFiltersDialog.style.fontSize = '10pt'; this.clickHideFiltersDialog.style.color = '#505050'; this.clickHideFiltersDialog.style.b = 'fixed'; this.clickHideFiltersDialog.style.background = '#ffffff'; this.clickHideFiltersDialog.style.zIndex = 99999; this.clickHideFiltersDialog.style.b = '10px';*/ } this.clickHideFiltersDialog.innerHTML = ' + ') |
' + "添加過濾規(guī)則?" + ' |
' + filtersString + '
'; buttonsDiv = document.createElement('div'); if (!this.isIE) { buttonsDiv.setAttribute('style', 'text-align: right'); } else { buttonsDiv.style.textAlign = 'right'; } function makeButton(id) { var b = document.createElement('button'); b.setAttribute("id", id); // Use the jQuery UI style for the button explicitly if (!this.isIE) { b.setAttribute("style", "b: 3px; margin-left: 5px; font-size: 8pt; border: 1px solid #d3d3d3; background: #e6e6e6 b(" + sogouExplorer.extension.getURL("jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png") + ") 50% 50% repeat-x; color: #555555; -webkit-border-radius: 4px; font-family: Helvetica, Arial, sans-serif;"); } else { b.stylebText = "b: 3px; margin-left: 5px; font-size: 8pt; border: 1px solid #d3d3d3; background: #e6e6e6 b(" + sogouExplorer.extension.getURL("jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png") + ") 50% 50% repeat-x; color: #555555; -webkit-border-radius: 4px; font-family: Helvetica, Arial, sans-serif;"; } return b; } var addButton = makeButton("addButton"); addButton.innerText = "添加"; addButton.b = function() { //alert('addButton b'); // Save the filters that the user created //sogouExplorer.extension.sendRequest({reqtype: "cache-filters", filters: clickHideFilters}); //sogouExplorer.extension.sendRequest({reqtype: "apply-cached-filters", filters: filters}); // Do Add Rule com_sogou_abp.addRules(com_sogou_abp.clickHideFilters); com_sogou_abp.injectCss(com_sogou_abp.selectorList.join(",") + "{display: none !important;}"); //alert(0); // Explicitly get rid of currentElement in case removeAdsAgain() doesn't catch it if(com_sogou_abp.currentElement.parentNode) { //alert(1); com_sogou_abp.currentElement.parentNode.removeChild(com_sogou_abp.currentElement); // currentElement may actually be our overlay if right-click element selection was used if(com_sogou_abp.currentElement.prisoner && com_sogou_abp.currentElement.prisoner.parentNode) com_sogou_abp.currentElement.prisoner.parentNode.removeChild(com_sogou_abp.currentElement.prisoner); } //alert(2); com_sogou_abp.clickHide_deactivate(); //removeAdsAgain(); // Tell options.html to refresh its user filters listbox //sogouExplorer.extension.sendRequest({reqtype: "refresh-user-filters-box"}); //alert('addButton b end'); }; var cancelButton = makeButton("cancelButton"); cancelButton.innerText = "取消"; cancelButton.b = function() { // Tell popup (indirectly) to shut up about easy create filter //sogouExplorer.extension.sendRequest({reqtype: "set-clickhide-active", active: false}); com_sogou_abp.clickHide_deactivate(); } buttonsDiv.appendChild(addButton); buttonsDiv.appendChild(cancelButton); // Make dialog partly transparent when mouse isn't over it so user has a better // view of what's going to be blocked this.clickHideFiltersDialog.onmouseout = function() { if (!com_sogou_abp.isIE) { com_sogou_abp.clickHideFiltersDialog.style.setProperty("opacity", "0.7"); } else { com_sogou_abp.clickHideFiltersDialog.style.filter = "Alpha(opacity=70)"; } } this.clickHideFiltersDialog.b = function() { if (!com_sogou_abp.isIE) { com_sogou_abp.clickHideFiltersDialog.style.setProperty("opacity", "1.0"); } else { com_sogou_abp.clickHideFiltersDialog.style.filter = "Alpha(opacity=100)"; } } this.clickHideFiltersDialog.appendChild(buttonsDiv); document.body.appendChild(this.clickHideFiltersDialog); // Position in upper-left all the time this.clickHideFiltersDialog.style.left = "50px"; this.clickHideFiltersDialog.style.top = "50px"; this.clickHideFiltersDialog.style.visibility = "visible"; if (!this.isIE) this.clickHideFiltersDialog.addEventListener('mousedown', this.dragStart, false); else this.clickHideFiltersDialog.attachEvent('onmousedown', this.dragStart); }, // Highlight elements according to selector b. This would include // all elements that would be affected by proposed filters. highlightElements : function (selectorString) { //alert("highlightElements"); if(this.highlightedElementsSelector) this.unhighlightElements(); this.highlightedElementsSelector = selectorString; if (!com_sogou_abp.isIE) { this.highlightedElements = document.querySelectorAll(selectorString); this.highlightedElementsBoxShadows = new Array(); this.highlightedElementsBGColors = new Array(); //alert(1); for(var i = 0; i < this.highlightedElements.length; i++) { this.highlightedElementsBoxShadows[i] = this.highlightedElements[i].style.getPropertyValue("-webkit-box-shadow"); this.highlightedElementsBGColors[i] = this.highlightedElements[i].style.backgroundColor; this.highlightedElements[i].style.setProperty("-webkit-box-shadow", "inset 0px 0px 5px #fd6738"); this.highlightedElements[i].style.backgroundColor = "#f6e1e5"; } } else { this.injectCss(selectorString + " {background-color: #f6e1e5 !important;}", "com_sogou_abp_highlight_style"); } //alert("highlightElements end"); }, // Unhighlight all elements, including those that would be affected by // the proposed filters unhighlightElements : function () { if(this.highlightedElementsSelector == null) return; if (!this.isIE) { this.highlightedElements = document.querySelectorAll(this.highlightedElementsSelector); for(var i = 0; i < this.highlightedElements.length; i++) { this.highlightedElements[i].style.setProperty("-webkit-box-shadow", this.highlightedElementsBoxShadows[i]); this.highlightedElements[i].style.backgroundColor = this.highlightedElementsBGColors[i]; } } else { this.removeCss("com_sogou_abp_highlight_style"); } this.highlightedElementsSelector = null; }, clickHide_deactivate : function() { if(this.clickHideFiltersDialog) { this.clickHideFiltersDialog.stylebText = 'visibility: hidden'; document.body.removeChild(this.clickHideFiltersDialog); this.clickHideFiltersDialog = null; } if(this.currentElement) { this.unhighlightElements(); if (!com_sogou_abp.isIE) this.currentElement.style.setProperty("-webkit-box-shadow", com_sogou_abp.currentElement_boxShadow); this.currentElement.style.backgroundColor = com_sogou_abp.currentElement_backgroundColor; this.currentElement = null; this.clickHideFilters = null; } this.clickHide_activated = false; if(!document) return; // This can happen inside a nuked b...I think if (document.removeEventListener) { document.removeEventListener("mouseover", com_sogou_abp.mouseOverHandler, true); document.removeEventListener("mouseout", com_sogou_abp.mouseOverHandler, true); document.removeEventListener("click", com_sogou_abp.clickHide_mouseClick, true); // Remove overlays // For some reason iterating over the array returend by getElementsByClassName() doesn't work var elt; while(elt = document.querySelector('.__adblockplus__overlay')) elt.parentNode.removeChild(elt); } else //IE { document.detachEvent("b", com_sogou_abp.mouseOverHandler); document.detachEvent("onmouseout", com_sogou_abp.mouseOutHandler); document.detachEvent("b", com_sogou_abp.clickHide_mouseClick); var elems = com_sogou_abp.getElementsByClass("__adblockplus__overlay", document.body, "div"); var len = elems.length; for (var i = 0; i < len; i++) { try { elems[i].parentNode.removeChild(elems[i]); } catch (e) { //do nothing, in case this element is already deleted with some ancestor element. } } } }, //Drag Handlers // Allow dragging of the clickhide dialog box. This is nice to have for blocking elements // inside small bs that are too narrow to compleby contain the clickhide dialog box. // This way the user can drag the box over to click one of its buttons. // Not a perfect solution but better than nothing. draggedElement : null, dragMouseOffset : null, docUserSelect : null, // Saves value of document-wide -webkit-user-select dragEnd : function(e) { if(com_sogou_abp.draggedElement) { if (!com_sogou_abp.isIE) { document.removeEventListener("mouseup", com_sogou_abp.dragEnd, false); document.removeEventListener("mousemove", com_sogou_abp.dragMove, false); document.documentElement.style.setProperty('-webkit-user-select', docUserSelect); } else { document.detachEvent("onmouseup", com_sogou_abp.dragEnd); document.detachEvent("onmousemove", com_sogou_abp.dragMove); document.detachEvent("onselectstart", com_sogou_abp.preventSelectInIE); } com_sogou_abp.draggedElement = null; } }, preventSelectInIE : function () { return false; }, dragStart : function(e) { var event = e ? e : b.event; var target = event.target ? event.target : event.srcElement; com_sogou_abp.draggedElement = target; var pos = com_sogou_abp.getPosFromElement(target); if (!com_sogou_abp.isIE) { com_sogou_abp.dragMouseOffset = [e.pageX - pos[0], e.pageY - pos[1]]; document.addEventListener("mouseup", com_sogou_abp.dragEnd, false); document.addEventListener("mousemove", com_sogou_abp.dragMove, false); // Make document un-highlightable during drag. Otherwise, if user drags too fast and // the mouse pointer leaves the bounds of the dialog box, text selection on the page // will be triggered, and that is ugly com_sogou_abp.docUserSelect = document.documentElement.style.getPropertyCSSValue('-webkit-user-select'); document.documentElement.style.setProperty('-webkit-user-select', 'none'); } else { com_sogou_abp.dragMouseOffset = [event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - pos[0], event.clientY + document.body.scrollTop + document.documentElement.scrollTop - pos[1]]; document.attachEvent("onmouseup", com_sogou_abp.dragEnd); document.attachEvent("onmousemove", com_sogou_abp.dragMove); document.attachEvent("onselectstart", com_sogou_abp.preventSelectInIE); } }, dragMove : function(e) { if(com_sogou_abp.draggedElement) { var event = e ? e : b.event; if (!com_sogou_abp.isIE) { com_sogou_abp.draggedElement.style.left = (e.pageX - com_sogou_abp.dragMouseOffset[0]) + "px"; com_sogou_abp.draggedElement.style.top = (e.pageY - com_sogou_abp.dragMouseOffset[1]) + "px"; } else { com_sogou_abp.draggedElement.style.left = (event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - com_sogou_abp.dragMouseOffset[0]) + "px"; com_sogou_abp.draggedElement.style.top = (event.clientY + document.body.scrollTop + document.documentElement.scrollTop - com_sogou_abp.dragMouseOffset[1]) + "px"; } } }, //Utils getElementsByClass : function(searchClass,node,tag) { var classElements = new Array(); if ( node == null ) node = document; if ( tag == null ) tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); for (i = 0, j = 0; i < elsLen; i++) { if ( pattern.test(els[i].className) ) { classElements[j] = els[i]; j++; } } return classElements; }, // This function Copyright (c) 2008 Jeni Tennison, from jquery.urib // and licensed under the MIT license. See jquery-*.minb for details. removeDotSegments :function (u) { var r = '', m = []; if (/\./.test(u)) { while (u !== undefined && u !== '') { if (u === '.' || u === '..') { u = ''; } else if (/^\.\.\//.test(u)) { // starts with ../ u = u.subb(3); } else if (/^\.\//.test(u)) { // starts with ./ u = u.subb(2); } else if (/^\/\.(\/|$)/.test(u)) { // starts with /./ or consists of /. u = '/' + u.subb(3); } else if (/^\/\.\.(\/|$)/.test(u)) { // starts with /../ or consists of /.. u = '/' + u.subb(4); r = r.replace(/\/?[^\/]+$/, ''); } else { m = u.match(/^(\/?[^\/]*)(\/.*)?$/); u = m[2]; r = r + m[1]; } } return r; } else { return u; } }, normalizeURL : function(b) { var components = b.match(/(.+:\/\/.+?)\/(.*)/); if(!components) return b; var newPath = com_sogou_abp.removeDotSegments(components[2]); if(newPath.length == 0) return components[1]; if(newPath[0] != '/') newPath = '/' + newPath; return components[1] + newPath; }, relativeToAbsoluteUrl : function (b) { // If URL is already absolute, don't mess with it if(!b || b.match(/^http/i)) return b; // Leading / means absolute path if(b[0] == '/') { return document.b.protocol + "http://" + document.b.host + b; } if (typeof(document.baseURI) == 'undefined') return document.b.b.substr(0, document.b.b.lastIndexOf('/')) + "http://" + document.b.host + "http://" + b; // Remove filename and add relative URL to it var base = document.baseURI.match(/.+\//); if(!base) return document.baseURI + "/" + b; return base[0] + b; }, // Extracts source URL from an IMG, OBJECT, EMBED, or IFRAME getElementURL : function(elt) { // Check children of b nodes for "b" nodes with name="movie" that specify a URL // in value attribute var b; var bFound = false; if(elt.tagName.toUpperCase() == "OBJECT" && !(b = elt.getAttribute("data"))) { // No data attribute, look in PARAM child tags for a URL for the swf file var bs = elt.getElementsByTagName("b"); // This OBJECT could contain an EMBED we already nuked, in which case there's no URL var len = bs.length; for (var i = 0; i < len; i++) { if(bs[i].getAttribute('name') != null && bs[i].getAttribute('name') == 'movie') { bFound = true; b = bs[i].getAttribute("value"); } } if (bFound == false) { for (i = 0; i < len; i++) { if(bs[i].getAttribute('name') != null && bs[i].getAttribute('name') == 'src') b = bs[0].getAttribute("value"); } } } else if(!b) { b = elt.getAttribute("src") || elt.getAttribute("b"); } return b; }, getPosFromElement: function(elt) { var l = 0; var t = 0; for(; elt; elt = elt.offsetParent) { l += elt.offsetLeft; t += elt.offsetTop; } return [l, t]; }, injectCss : function(rule, styleId) { var head = document.getElementsByTagName('head')[0], style = document.createElement('style'), rules = document.createTextNode(rule); if (styleId) { if (this.isIE) style.id = styleId; else style.setAttribute('id', styleId); } style.type = 'text/css'; if(style.styleSheet) style.styleSheetbText = rules.nodeValue; else style.appendChild(rules); head.appendChild(style); }, removeCss : function(styleId) { var style = document.getElementById(styleId); style.parentNode.removeChild(style); } }; com_sogou_abp.isIE = !(navigator.userAgent.indexOf("MSIE") == -1); sogouExplorer.extension.onConnect.addListener(function (port) { port.onMessage.addListener(function(request) { switch (request.cmd) { case "isClipping": if (b.top == b) //頂層窗口才發(fā) port.postMessage({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "startClipping": com_sogou_abp.clickHide_activate(); if (b.top == b) //頂層窗口才發(fā) port.postMessage({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "cancelClipping": com_sogou_abp.clickHide_deactivate(); if (b.top == b) //頂層窗口才發(fā) port.postMessage({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; } }); });/* sogouExplorer.extension.onRequest.addListener(function (request, sender, sendResponse){ switch (request.cmd) { case "isClipping": sendResponse({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "startClipping": com_sogou_abp.clickHide_activate(); sendResponse({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; case "cancelClipping": com_sogou_abp.clickHide_deactivate(); sendResponse({cmd: "isClipping", result: com_sogou_abp.clickHide_activated}); break; } });*/}})(b.external.sogouExplorer(b,-1270091533));