Neste artigo, gostaria de orientá-lo sobre como criar um site de redirecionamento de link externo para um belo blogspot.

Há uma seção para criar redirecionamentos separados para usuários e uma contagem regressiva. E é combinado com a interface que compartilho abaixo.

Compartilhe modelos e instruções para criar um site de redirecionamento de link externo automatizado para blogspot
Interface de navegação do site

 Baixe o modelo de blogspot de navegação profissional

O modelo de navegação tem um layout simples e fácil de ver e possui um local de anúncio integrado. Principalmente, o template tem muito pouco código, então a velocidade de carregamento é rápida, sem nenhuma polêmica.
Demonstração ao vivo Baixar

Instruções para criar um site de redirecionamento externo

Etapa 1: Crie um site de blog redirecionado

Você cria um novo blog e usa o modelo de redirecionamento que compartilhou acima. Nomeie o novo URL do blog como quiser (aqui eu uso o subdomínio do meu site no seguinte url: redirect.anhtrainang.com)

Compartilhe modelos e instruções para criar um site de redirecionamento de link externo automatizado para blogspot
O site do blog redireciona anhtrainang.com

Neste novo blog, você presta atenção para editar o modelo e editar todos os links anhtrainang.com no link principal do seu blog . Edite o nome e o título como desejar.

Etapa 2: adicionar Javascript que redireciona automaticamente para links externos

De volta ao seu blog principal, adicione o seguinte código na frente da tag de fechamento </head> do seu blog. Este código é usado para redirecionar todos os links que não são do blog para a página de espera de redirecionamento que você criou na etapa 1.
<b: if cond = 'data: view.isMultipleItems'>
<b: else />
<script>
var redirect = & # 39; int & # 39 ;;
var exclude_domains = [& # 39; anhtrainang.com & # 39 ;, & # 39; www.anhtrainang.com & # 39 ;, & # 39; bp.blogspot.com & # 39;,];
// <! [CDATA [
var DOMAssistant = function () {var G = function () {}; var C = / * @ cc_on! @ * / false; var F = C && parseFloat (navigator.appVersion) <6; var B = {}, K = { }, A = true; var J = {accesskey: "accessKey", "class": "className", colspan: "colSpan", "for": "htmlFor", maxlength: "maxLength", somente leitura: "readOnly", RowSpan: "rowSpan", tabindex: "tabIndex", valign: "vAlign", cellspacing: "cellSpacing", cellpadding: "cellPadding"}; var I = {rules: / \ s * (,) \ s * / g, seletor: / ^ (\ w +)? (# [\ w \ u00C0- \ uFFFF \ - \ _] + | (\ *))? ((\. [\ w \ u00C0- \ uFFFF \ -_] +) *)? ((\ [\ w + \ s * (\ ^ | \ $ | \ * | \ || ~)? (= \ s * ([\ w \ u00C0- \ uFFFF \ s \ - \ _ \. ] + | "[^"] * "| '[^'] * '))? \] +) *)? (((: \ w + [\ w \ -] *) (\ ((ímpar | par | \ -? \ d * n? ((\ + | \ -) ​​\ d +)? | [\ w \ u00C0- \ uFFFF \ -_ \.] + | "[^"] * "| '[^'] * '| ((\ w * \.[\ w \ u00C0- \ uFFFF \ -_] +) *)? | (\ [#? \ w + (\ ^ | \ $ | \ * | \ || ~)? =? [\ w \ u00C0- \ uFFFF \ s \ - \ _ \. \ '\ "] + \] +) | (: \ w + [\ w \ -] *)) \))?) *)? (> | \ + | ~)? /, id: / ^ # ([\ w \ u00C0- \ uFFFF \ - \ _] +) $ /, tag: / ^ (\ w +) /, relação: / ^ (> | \ + | ~) $ / , pseudo: / ^: (\ w [\ w \ -] *) (\ ((. +) \))? $ /, pseudos: /: (\ w [\ w \ -] *) (\ (( [^ \)] +) \))? / g, atribs: / \ [(\ w +) \ s * (\ ^ | \ $ | \ * | \ || ~)? =? \ s * ([\ w \ u00C0- \ uFFFF \ s \ -_ \.] + | "[^"] * "| '[^'] * ')? \] / g, classes: / \. ([\ w \ u00C0- \ uFFFF \ -_] +) / g, entre aspas: / ^ ["'] (. *) ["'] $ /, enésimo: / ^ ((ímpar | par) | ([1-9] \ d * ) | ((([1-9] \ d *)?) N ([\ + \ -] \ d +)?) | (\ - (([1-9] \ d *)?) N \ + ( \ d +))) $ /}; var E = função (M, L) {M.push.apply (M, []. slice.apply (L)); return M}; if (C) {E = function (N, M) {if (M.slice) {retornar N.concat (M)} var L = 0, O; enquanto ((O = M [L ++])) {N [Comprimento N.] = O} retornar N}} var D = função (O, N) {if (O.indexOf) {return O.indexOf (N)> = 0} para (var M = 0, L = O.length; M <L;M ++) {if (O [M] === N) {retornar verdadeiro}} retornar falso}; var H = função (N, L) {var M = N.parentNode; retornar L === documento || M = == L || (M! == document && H (M, L))}; return {isIE: C, camel: J, allMethods: [], publicMethods: ["cssSelect", "elmsByClass", "elmsByAttribute", " elmsByTag "], initCore: function () {this.applyMethod.call (window," $ ", this. $); this.applyMethod.call (window," $$ ", this. $$); window.DOMAssistant = this; if (C) {G = Array} G.prototype = []; G.prototype.each = function (N) {for (var M = 0, L = this.length; M <L; M ++) {N .call (this [M])} return this}; G.prototype.first = function () {return (typeof this [0]! == "undefined")? DOMAssistant.addMethodsToElm (this [0]): null} ; G.prototype.end = function () {return this.previousSet}; this.attach (this)}, addMethods: function (L, M) {if (typeof this.allMethods [L] === "undefined") {this.allMethods [L] = M;this.addHTMLArrayPrototype (L, M)}}, addMethodsToElm: function (M) {for (var L em this.allMethods) {if (typeof this.allMethods [L]! == "undefined") {this.applyMethod.call (M, L, this.allMethods [L])}} return M}, applyMethod: function (M, L) {if (typeof this [M]! == "function") {this [M] = L}} , anexar: função (N) {var L = N.publicMethods; if (typeof L === "undefined") {for (var P in N) {if (P! == "init" && typeof N [P]! == "undefined") {this.addMethods (P, N [P])}}} else {if (L.constructor === Array) {for (var M = 0, O; (O = L [M] ); M ++) {this.addMethods (O, N [O])}}} if (typeof N.init === "function") {N.init ()}}, addHTMLArrayPrototype: function (L, M) { G.protótipo [L] = função () {var P = novo G (); P.previousSet = this; var Q; para (var O = 0, N = this.length; O <N; O ++) {Q = M. aplique (this [O], argumentos); if (!! Q && Q.constructor === Array) {P = E (P, Q)} else {P.push (Q)}} return P}},clearHandlers: function () {var Q = this.all || this.getElementsByTagName ("*"); for (var P = 0, R, L; (R = Q [P ++]);) {if ((L = R.attributes)) {para (var N = 0, O = L.length, M; N <O; N ++) {M = L [N] .Nome do nó.toLowerCase (); if (typeof R [M] == = "função") {R [M] = nulo}}}}}, setCache: função (L) {A = L}, $: função () {var O = argumentos [0]; if (argumentos.comprimento = == 1 && (typeof O === "objeto" || (typeof O === "function" && !! O.nodeName))) {return DOMAssistant. $$ (O)} var Q = new G (); for (var M = 0, L, P; (L = argumentos [M]); M ++) {if (typeof L === "string") {L = L.replace (/ ^ [^ #] * (# ) /, "$ 1"); if (I.id.test (L)) {if ((P = DOMAssistant. $$ (L.substr (1), false))) {Q.push (P)}} else {var N = (document.all || document.getElementsByTagName ("*")). length; Q = (! document.querySelectorAll && A && K.rule && K.rule === L && K.doc === N)? K.elms: E (Q, DOMAssistant.cssSelection.call (document, L)); K = {regra: L, olms: Q, doc: N}}}} return Q}, $$: function (Q, N) {var P = (typeof Q == = "objeto" || (typeof Q === "function" && !! Q.nodeName))? Q: document.getElementById (Q); var O = N || true; if (typeof Q === "string "&& P && P.id! == Q) {P = null; for (var L = 0, M; (M = document.all [L]); L ++) {if (M.id === Q) {P = M; quebrar}}} if (P && O) {DOMAssistant.addMethodsToElm (P)} retornar P}, getSequence: function (P) {var Q, O = 2, M = -1, L = -1, N = I. nth.exec (P.replace (/ ^ 0n \ + /, ""). replace (/ ^ 2n $ /, "even"). replace (/ ^ 2n + 1 $ /, "odd")); if ( ! N) {return null} if (N [2]) {Q = (N [2] === "ímpar")? 1: 2; L = (Q === 1)? 1: 0} else { if (N [3]) {Q = parseInt (N [3], 10); O = 0; M = Q} else {if (N [4]) {O = N [6]? parseInt (N [6] ], 10): 1; Q = N [7]? ParseInt (N [7], 10): 0; enquanto (Q <1) {Q + = O} L = (Q> O)? (QO)% O : ((Q === O)? 0: Q)} else {if (N [8]) {O = N [10]? ParseInt (N [10], 10): 1;Q = M = parseInt (N [11], 10); enquanto (Q> O) {Q- = O} L = (M> O)? (MO)% O: ((M === O)? 0 : M)}}}} return {start: Q, add: O, max: M, modVal: L}}, cssByDOM: function (L) {var AL = L.replace (I.rules, "$ 1"). dividir (","); var AD = novo G (), At = [], AI = []; var y, AU, X, T, d, Ax, N, Ak, Q, Z, M, Au, AO, O, AK; tente {y = new RegExp ("(?: \\ [[^ \\ [] * \\] | \\ (. * \\) | [^ \\ s \\ +> ~ \\ [\\ (]) + | [\\ +> ~] "," g ")} catch (Am) {y = / [^ \ s] + / g} função AR (i) {i = i || At; for (var e = 0, a = i.length; e <a; e ++) {i [e] .added = null}} function S () {for (var e = 0, a = AU. comprimento; e <a; e ++) {AU [e] .childElms = null}} função Aq (k, a) {for (var l = 0, o; (o = k [l]); l ++) {var n = falso; para (var e = 0, m; (m = a [e]); e ++) {if (m === o) {n = verdadeiro; a.splice (e, 1); quebrar}} se (n) {k.splice (l -, 1)}} return k} função U (e, a) {return C? e [J [a.toLowerCase ()] || a]: e.getAttribute (a , 2)} função g (a, e) {a = a? A.substitua (I. aspas, "$ 1"). Substitua (/\./ g, "\\."): Nulo;switch (e) {case "^": return "^" + a; case "$": return a + "$"; case "*": return a; case "|": return "^" + a + "(\ \ - \\ w +) * $ "; case" ~ ": retorna" \\ b "+ a +" \\ b "; padrão: retorna a?" ^ "+ a +" $ ": null}} função v (a , e) {return F? ((a === "*")? e.all: e.all.tags (a)): e.getElementsByTagName (a)} função AM (a, e) {a = a || "*"; e = e || documento; retornar (e === documento || e.últimoModificado)? B [a] || (B [a] = v (a, documento)): v (a , e)} função Av (m, A5, j) {AU = []; var k = A5.split ("-"), r = [], AW = 0, A4, AV; var l = (A4 = /\-of\-type$/.test(A5))?"nodeName":"nodeType";function A6 (A8) {var A7 = A4? A8.nodeName: 1; while ((A8 = A8.previousSibling) && A8 [l]! == A7) {} return A8} função q (A8) {var A7 = A4? A8.nodeName: 1; while ((A8 = A8.nextSibling) && A8 [l]!== A7) {} return A8} var o = {first: function (A7) {return! A6 (A7)}, last: function (A7) {return! Q (A7)}, empty: function (A7) { return! A7.childNodes.length}, ativado: function (A7) {return! Q.disabled && Q.type! == "hidden"}, disabled: function (A7) {return Q.disabled}, verificado: function (A7) {return Q.checked}, contém: function (A7) {return (Q.innerText || Q.textContent || ""). indexOf (j.replace (I.quoted, "$ 1"))> - 1}, outro: função (A7) {return U (Q, A5) === j}}; função i (A7) {while ((Q = m [AW ++])) {if (o [A7] (Q)) { r [r.length] = Q}} return r} var A1 = k [0] || null; if (A1 && o [A1]) {return i (A1)} switch (A1) {case "only": var s ; enquanto ((Q = m [AW ++])) {Z = Q.parentNode; if (Z! == s) {if (! A6 (Q) &&! q (Q)) {r [r.length] = Q} s = Z}} quebra; caso "enésimo": if (/ ^ n $ /. Teste (j)) {r = m} else {var A3 = (k [1] === "último")? ["lastChild", "previousSibling"]: ["firstChild "," nextSibling "]; AK = DOMAssistant.getSequence.call (this, j); if (AK) {while ((Q = m [AW ++])) {Z = Q.parentNode; if (! Z.childElms ) {var A0 = 0, AX = Q.nome do nó; AO = AK.início; O = Z [A3 [0]]; enquanto (O && (AK.max <0 || AO <= AK.max)) {var A2 = O.nodeNome; if ((A4 && A2 === AX) || (! A4 && O.nodeType === 1)) {if (++ A0 === AO) {if (A2 === AX) {r [r.length] = O} AO + = AK.add}} O = O [A3 [1]]} Z.childElms = true; AU [AU.length] = Z}} S ()}} quebra; case " target ": var e = document.location.hash.slice (1); if (e) {while ((Q = m [AW ++])) {if (U (Q," nome ") === e || U (Q, "id") === e) {r [r.length] = Q; quebrar}}} quebra; case "não": if ((AV = I.pseudo.exec (j))) { r = Aq (m, Av (m, AV [1]? AV [1] .toLowerCase (): nulo, AV [3] || nulo))} else {for (var AY em I) {if (I [ AY] .lastIndex) {I [AY] .lastIndex = 0}} j = j.replace (I.id, "[id = $ 1]"); var u = I.tag.exec (j); var n = I.classes.exec (j); var t = I.attribs.exec (j);var a = novo RegExp (t? g (t [3], t [2]): "(^ | \\ s)" + (u? u [1]: n? n [1]: "") + "(\\ s | $)", "i"); enquanto ((M = m [AW ++])) {Au = null; if (u &&! a.test (M.nodeName)) {Au = M} else {if (n &&! a.test (M.className)) {Au = M} else {if (t) {var AZ = U (M, t [1]); if (! AZ ||! a.test ( AZ)) {Au = M}}}} if (Au &&! Au.added) {Au.added = true; r [r.length] = Au}}} break; default: return i ("other")} return r} para (var Ao = 0; (X = AL [Ao]); Ao ++) {if (Ao && D (AL.slice (0, Ao), X)) {continuar} At = [este]; T = X. correspondência (y); para (var Al = 0, V; (V = T [Al]); Al ++) {AI = []; if (Al> 0 && I.relation.test (V)) {if ((d = I.relação.exec (V))) {var Ar = nulo, AS = T [Al + 1]; if ((Ax = I.tag.exec (AS))) {Ax = Ax [1]; N = new RegExp ("(^ | \\ s)" + Ax + "(\\ s | $)", "i")} else {if (I.id.test (AS)) {Ar = DOMAssistant. $ (AS ) || null}} para (var Aj = 0, c; (c = At ​​[Aj]); Aj ++) {switch (d [0]) {case ">": var AF = Ar || AM (Ax,c); para (var Ah = 0, AA; (AA = AF [Ah]); Ah ++) {if (AA.parentNode === c) {AI [AI.length] = AA}} quebra; case "+ ": while ((c = c.nextSibling) && c.nodeType! == 1) {} if (c) {if ((Ar && Ar [0] === c) || ​​(! Ar && (! Ax || N. test (c.nodeName)))) {AI [AI.length] = c}} break; case "~": while ((c = c.nextSibling) &&! c.added) {if ((Ar && Ar [0] === c) || ​​(! Ar && (! Ax || N.test (c.nodeName)))) {c.added = true; AI [AI.length] = c}} break}} At = AI; AR (); V = T [++ Al]; if (/ ^ \ w + $ /. Test (V) || I.id.test (V)) {continue} At.skipTag = true}} var Aw = I.selector.exec (V); var AH = {tag :(! Aw [1] || Aw [3] === "*")? "*": Aw [1], id: (Aw [3 ]! == "*")? Aw [2]: nulo, allClasses: Aw [4], allAttr: Aw [6], allPseudos: Aw [11]}; if (AH.id) {var f = 0, Ap = document.getElementById (AH.id.replace (/ # /, "")); if (Ap) {while (At [f] &&! H (Ap, At [f])) {f ++} AI = ( f <At.length)? [Ap]: []} At = AI} else {if (AH.tag &&!At.skipTag) {if (Al === 0 &&! AI.length && At.length === 1) {At = AI = E ([], AM (AH.tag, At [0]))} else {for ( var Ag = 0, AP = At.length, AB, Ay; Ag <AP; Ag ++) {AB = AM (AH.tag, At [Ag]); para (var Ad = 0; (Ay = AB [Ad] ); Ad ++) {if (! Ay.added) {Ay.added = true; AI [AI.length] = Ay}}} At = AI; AR ()}}} if (! AI.length) {break} At.skipTag = false; if (AH.allClasses) {var Ac = 0, Ae = [], Y = AH.allClasses.split ("."). Slice (1); enquanto ((Ak = At ​​[Ac ++]) )) {var Ai = true, Az = Ak.className; if (Az && Az.length) {Az = Az.split (""); for (var Aa = 0, Ab = Y.length; Aa <Ab; Aa ++) {if (! D (Az, Y [Aa])) {Ai = false; break}} if (Ai) {Ae [Ae.length] = Ak}}} At = AI = Ae} if (AH.allAttr) {var w = 0, AE = [], Af = [], AJ = AH.allAttr.match (/ \ [[^ \]] + \] / g); para (var z = 0, P = AJ. comprimento, x, AQ; z <P; z ++) {I.attribs.lastIndex = 0; x = I.attribs.exec (AJ [z]); AQ = g (x [3], x [2] || nulo); AE [z] = [(AQ? novo RegExp (AQ): nulo), x [1]]} enquanto ((Ak = AI [w ++])) {para (var p = 0, AG = AE. comprimento; p <AG;p ++) {var R = true, AC = AE [p] [0], An = U (Ak, AE [p] [1]); if (! AC && An === true) {continue} if ((! AC && (! Um || typeof An! == "string" ||! An.length)) || (!! AC &&! AC.test (An))) {R = false; break}} if (R) {Af [Comprimento Af.] = Ak}} At = AI = Af} if (AH.allPseudos) {var W = AH.allPseudos.match (I.pseudos); para (var h = 0, As = W.length; h <As; h ++) {I.pseudos.lastIndex = 0; var AT = I.pseudos.exec (W [h]); var b = AT [1]? AT [1] .toLowerCase (): nulo; var AN = AT [3] || null; AI = Av (AI, b, AN); AR (AI)} At = AI}} AD = E (AD, At)} return AD}, cssByXpath: function (M) { var N = {xhtml: "http://www.w3.org/1999/xhtml"}; var O = (document.documentElement.namespaceURI === N.xhtml)? "xhtml:": ""; var L = function P (Q) {return N [Q] || null}; DOMAssistant.cssByXpath = function (l) {if (/: verificado / .test (l)) {return DOMAssistant.cssByDOM.call (this, l) } var X = l.replace (I.rules, "$ 1"). split (","); var W = new G ();var p, r, f, U, V, Z; var q = new RegExp ("(?: \\ [[^ \\ [] * \\] | \\ (. * \\) | [^ \\ s \\ +> ~ \\ [\\ (]) + | [\\ +> ~] "," g "); função h (i, t, k, j) {j = j? j.replace ( I.quoted, "$ 1"): j; switch (k) {case "^": return "starts-with (@" + t + ', "' + j + '")'; case "$": return "substring (@ "+ t +", (string-length (@ "+ t +") - "+ (j.length-1) +"), "+ j.length + ') ="' + j + '"'; case" * ": return'contains (concat (" ", @ '+ t +'," ")," '+ j +' ") '; case" | ": return" (@ "+ t +' =" '+ j +' "ou começa com (@ '+ t +'," '+ j +' - ")) '; case" ~ ": return'contains (concat (" ", @' + t + '," "),"' + j + '")'; padrão:return "@" + t + (j? '= "' + j + '"': "")}} função T (i, t, k, j) {return "[" + h (i, t, k, j ) + "]"} função n (y, x, k) {y = / \ - filho $ /. test (x)? "*": y; var t = "", v = x.split ("- "), u; switch (v [0]) {case" enésimo ": if (! / ^ n $ /. test (k)) {var j = ((v [1] ===" último ")? "(contagem (seguinte-irmão ::": "(contagem (anterior-irmão ::") + y + ") + 1)"; if ((Z = DOMAssistant.getSequence.call (this, k))) {t = (Z.início === Z.max)? J + "=" + Z.início: j + "mod" + Z.add + "=" + Z.modVal + ((Z.início> 1)? "E" + j + "> =" + Z.start: "") + ((Z.max> 0)? "e" + j + "<=" + Z.max: "")}} quebra; case "não": var w = (u = I.pseudo.exec (k))? n (y, u [1]? u [1] .toLowerCase (): nulo, u [3] || nulo): k.replace (I. id, "[id = $ 1]").substituir (I.tag, "self :: $ 1"). replace (I.classes, 'contains (concat ("", @class, ""), "$ 1")'). replace (I.attribs, h) ; t = "not (" + w + ")"; break; case "primeiro": return "not (precedente-sibling ::" + y + ")"; case "last": return "not (following-brother :: "+ y +") "; caso" apenas ": retorna" não (irmão anterior :: "+ y +" ou irmão seguinte :: "+ y +") "; caso" vazio ": retorna" contagem (filho :: *) = 0 e string-length (text ()) = 0 "; case" contém ": return'contains (.," '+ K.replace (I.quoted, "$ 1") +' ") '; case "ativado": return'not (@disabled) and not (@ type = "hidden") '; case "disabled": return "@disabled"; case "target": var i = document.location.hash.slice (1); return '@ name = "' + i + '" ou @id = "' + i + '"'; padrão: return "@" + x + '= "' + k + '"'} retornar t} para (var m = 0; (p = X [m]); m ++) {if (m && D (X.slice (0, m), p)) {continuar} r = p.match (q); f = "."; para (var g = 0, o = r.length; g <o; g ++) {U = I.selector.exec (r [g]); V = {tag: O + ((! U [1] || U [3] === "*")? "*": U [1]), id: (U [3]! == "*")? U [2]: null, allClasses : U [4], allAttr: U [6], allPseudos: U [11], tagRelation: U [23]}; if (V.tagRelation) {var a = {">": "/ child ::", "+": "/ following-sibling :: * [1] / self ::", "~": "/ following-sibling ::"}; f + = a [V.tagRelation] || ""} else { f + = (g> 0 && I.relation.test (r [g-1]))? V.tag :( "/ descendente ::" + V.tag)} if (V.id) {f + = '[@ id = "'+ V.id.replace (/ ^ # /," ") + '"]'} if (V.allClasses) {f + = V.allClasses.replace (I.classes, '[contains (concat (" ", @class," ")," $ 1 ")]')} if (V.allAttr) {f + = V.allAttr.replace (I.attribs, T)} if (V.allPseudos) {var Y = V.allPseudos.match (I.pseudos); for (var e = 0, R = comprimento de Y; e <R; e ++) {I.pseudos.lastIndex = 0; var S = I.pseudos.exec (Y [e]); var s = S [1]? S [1] .toLowerCase (): nulo; var Q = S [3] || nulo; var b = n (V.tag, s, Q); if (b.length) {f + = "[" + b + "]"}}} } var d = document.evaluate (f, this, L, 0, null), c; while ((c = d.iterateNext ())) {W.push (c)}} return W}; return DOMAssistant.cssByXpath .call (this, M)}, cssSelection: function (M) {DOMAssistant.cssSelection = document.evaluate? DOMAssistant.cssByXpath: DOMAssistant.cssByDOM; if (document.querySelectorAll) {var L = DOMAssistant.cssSelection; função (N) {experimente {var P = novo G (); retorne E (P, este.querySelectorAll (N))} catch (O) {return L.call (this, N)}}} return DOMAssistant.cssSelection.call (this, M)}, cssSelect: function (L) {return DOMAssistant.cssSelection.call ( this, L)}, elmsByClass: function (N, L) {var M = (L || "") + "." + N; return DOMAssistant.cssSelection.call (this, M)}, elmsByAttribute: function (M , N, L, P) {var O = (L || "") + "[" + M + ((N && N! == "*")? ((P || "") + "=" + N + " ] "):"] "); return DOMAssistant.cssSelection.call (this, O)}, elmsByTag: function (L) {return DOMAssistant.cssSelection.call (this, L)}}}} (); DOMAssistant.initCore ( ); DOMAssistant.AJAX = function () {var globalXMLHttp = null; var readyState = 0; var status = -1; var statusText = ""; var requestPool = []; var createAjaxObj = function (url, método, callback, addToContent ) {var params = null; if (/POST/i.test (método)) {url = url.split ("?");params = url [1]; url = url [0]} return {url: url, método: método, callback: callback, params: params, headers: {}, responseType: "text", addToContent: addToContent || false} }; var inProgress = function (xhr) {return (!! xhr && xhr.readyState> = 1 && xhr.readyState <= 3)}; return {publicMethods: ["ajax", "get", "post", "load"], initRequest: function () {var XMLHttp = null; if (!! window.XMLHttpRequest) {XMLHttp = new XMLHttpRequest (); DOMAssistant.AJAX.initRequest = function () {return requestPool.length? requestPool.pop (): new XMLHttpRequest ()}} else {if (!! window.ActiveXObject) {var XMLHttpMS = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]; para ( var i = 0; i <XMLHttpMS.length; i ++) {tente {XMLHttp = nova janela.ActiveXObject (XMLHttpMS [i]); DOMAssistant.AJAX.initRequest = function () {return requestPool.length? requestPool.pop (): new window.ActiveXObject (XMLHttpMS [i])}; break} catch (e) {XMLHttp = null}}}} return XMLHttp}, ajax: function (ajaxObj) {if (! ajaxObj.noParse && ajaxObj.url && / \? /. test (ajaxObj.url) && ajaxObj.method && / POST / i.test (ajaxObj.method)) {var url = ajaxObjl) "); ajaxObj.url = url [0]; ajaxObj.params = url [1] + ((url [1] .length> 0 && ajaxObj.params)? (" & "+ ajaxObj.params):" ")} retornar DOMAssistant.AJAX.makeCall.call (this, ajaxObj)}, get: function (url, callback, addToContent) {var ajaxObj = createAjaxObj (url, "GET", callback, addToContent); retornar DOM.call.AJAX.makeCall this, ajaxObj)}, post: function (url, callback) {var ajaxObj = createAjaxObj (url, "POST", callback); return DOMAssistant.AJAX.makeCall.call (this, ajaxObj)}, carregar:function (url, addToContent) {DOMAssistant.AJAX.get.call (this, url, DOMAssistant.AJAX.replaceWithAJAXContent, addToContent)}, makeCall: function (ajaxObj) {var XMLHttp = DOMAssistant.AJAX.initRequest; ) {globalXMLHttp = XMLHttp; (function (elm) {var url = ajaxObj.url, method = ajaxObj.method || "GET", callback = ajaxObj.callback, params = ajaxObj.params, headers = ajaxObj.headers, responseType = ajaxObj.responseType || "text", addToContent = ajaxObj.addToContent, timeout = ajaxObj.timeout || null, ex = ajaxObj.exception, timeoutId = null; XMLHttp.open (método, url, true "; método XMLHttp.setReader"; XMLHttp.setReader, true "; XMLHttp AJAX "," true "); XMLHttp.setRequestHeader (" X-Requested-With "," XMLHttpRequest "); if (method ===" POST ") {var contentLength = params? Params.length: 0; XMLHttp.setRequestHeader ("Content-type", "application / x-www-form-urlencoded"); XMLHttp.setRequestHeader ("Content-length", contentLength); if (XMLHttp.overrideMimeType) {XMLHttp.setRequestHeader ("Connection", "close")}} if (responseType === "json") {XMLHttp.setRequestHeader ("Aceitar", "application / json, text / javascript, * / *")} for (var i in headers) {if (typeof i === "string") {XMLHttp.setRequestHeader (i, headers [i] )}} if (typeof callback === "function") {XMLHttp.onreadystatechange = function () {try {if (XMLHttp.readyState === 4) {window.clearTimeout (timeoutId); status = XMLHttp.status; statusText = XMLHttp.statusText; readyState = 4; if (! Status || status! == 200) {lançar novo erro (statusText)} var response = / xml / i.test (responseType)? XMLHttp.responseXML: XMLHttp.responseText; if (/json/i.test (responseType)) {response = (typeof JSON === "objeto" && typeof JSON.parse === "função")? JSON.parse (resposta): eval ("(" + resposta + ")")} globalXMLHttp = null; XMLHttp.onreadystatechange = function () {}; requestPool.push (XMLHttp); callback.call (olmo, resposta, addToContent)}} catch (e) {globalXMLHttp = XMLHttp = null; if (typeof ex === "função") {ex.call (elm, e); ex = null}}}} XMLHttp.send (params); if (timeout) {timeoutId = window.setTimeout (function () {if (inProgress (XMLHttp)) {XMLHttp.abort (); if (typeof ex === "function") {readyState = 0; status = 408; statusText = "Solicitar tempo limite"; globalXMLHttp = XMLHttp = null; ex.call (elm, new Error (statusText)); ex = null}}}, tempo limite)}}) (this)} return this}, replaceWithAJAXContent: function (content , adicione) {if (add) {this.innerHTML + = content} else {DOMAssistant.clearHandlers.apply (this); this.innerHTML = content}}, getReadyState: function () {return (globalXMLHttp && typeof globalXMLHttp.readyState! == "undefined ")? globalXMLHttp.readyState: readyState}, getStatus: function () {status de retorno}, getStatusText: function () {return statusText}}} (); DOMAssistant.attach (DOMAssistant.AJAX); DOMAssistant.CSS = function ( ) {return {addClass: function (B) {if (! DOMAssistant.CSS.hasClass.call (this, B)) {var A = this.className; this.className = A + (A.length? "": "" ) + B} retornar isso}, removeClass: function (A) {return DOMAssistant.CSS.replaceClass.call (this, A)}, replaceClass: function (B, C) {var A = new RegExp (("(^ | \\ s) "+ B +" (\\ s | $) ")," i "); this.className = this.className.replace (A, function (D, G, F) {var E = C? ( G + C + F): ""; if (/ ^ \ s +. * \ S + $ /. Teste (D)) {E = D.replace (/ (\ s +). + /, "$ 1")} return E}). Substituir (/ ^ \ s + | \ s + $ / g, ""); retornar isso}, hasClass: function (A) {return new RegExp (("(^ | \\ s)" + A + "( \\ s | $) ")," i ").test (this.className)}, setStyle: function (C, D) {if (this.filters && (typeof C === "string"? / opacity / i.test (C): C.opacity)) {this. style.filter = "alpha (opacity =" + (D || C.opacity || 1) * 100 + ")"} if (typeof this.style.cssText! == "undefined") {var A = this. style.cssText; if (typeof C === "objeto") {for (var B em C) {if (typeof B === "string") {A + = ";" + B + ":" + C [B ]}}} else {A + = ";" + C + ":" + D} this.style.cssText = A} retornar isso}, getStyle: function (A) {var C = ""; A = A.toLowerCase ( ); if (document.defaultView && document.defaultView.getComputedStyle) {C = document.defaultView.getComputedStyle (this, ""). getPropertyValue (A)} else {if (this.currentStyle) {if (this.filters && / ^ opacity $ /.test(A))ul>var B = this.filters ["DXImageTransform.Microsoft.Alpha"] || this.filters.alpha || {}; C = (B.opacity || 100) / 100} else {A = A.replace (/ ^ float $ /, "styleFloat"). replace (/ \ - (\ w) / g, function (D, E) {return E.toUpperCase ()}); C = this.currentStyle [A]} if (C === "auto" && / ^ (largura | altura) $ /. test (A) && this .currentStyle.display! == "none") {C = this ["offset" + A.charAt (0) .toUpperCase () + A.substr (1)] + "px"}}} return C}}} (); DOMAssistant.attach (DOMAssistant.CSS); DOMAssistant.Content = function () {var A = DOMAssistant. $; Retorne {init: function () {DOMAssistant.setCache (false)}, anterior: function () {var B = this; while ((B = B.previousSibling) && B.nodeType! == 1) {} return A (B)}, next: function () {var B = this; while ((B = B.nextSibling) && B.nodeType! == 1) {} retornar A (B)}, criar: função (D, C, B, E) {var F = A (document.createElement (D)); if (C) {F = F.setAttributes (C)} if (typeof E! == "undefined") {F.addContent (E)} if (B) {DOMAssistant.Content.addContent.call (this, F)} return F}, setAttributes: function (B) {if (DOMAssistant.isIE) {var C = function (G, E, F) {var D = E.toLowerCase (); switch (D) {case "name": case "type": return document.createElement (G.outerHTML.replace (new RegExp (D + "= [a-zA-Z) ] + ")," ") .replace ("> "," "+ D +" = "+ F +"> ")); case" style ": G.style.cssText = F; return G; default: G [ DOMAssistant.camel [D] || E] = F; return G}}; DOMAssistant.Content.setAttributes = function (D) {var H = this; var G = this.parentNode; for (var F in D) {if (tipo de D [F] === "string" || tipo de D [F] === "número") {var E = C (H, F, D [F]); if (G && / (nome | tipo) ) /i.test (F)) {if (H.innerHTML) {E.innerHTML = H.innerHTML} G.replaceChild (E, H)} H = E}} return A (H)}} else {DOMAssistant. Nội dung.setAttributes = function (D) {for (var E em D) {if (/class/i.test (E)) {this.className = D [E]} else {this.setAttribute (E, D [E]) }} return this}} return DOMAssistant.Content.setAttributes.call (this, B)}, addContent: function (C) {var B = typeof C; if (B === "string" || B === " número ") {this.innerHTML + = C} else {if (B ===" objeto "|| (B ===" função "&& !! C.nodeName)) {this.appendChild (C)}} retornar isso }, replaceContent: function (B) {DOMAssistant.clearHandlers.apply (this); this.innerHTML = ""; return DOMAssistant.Content.addContent.call (this, B)}, replace: function (G, B) {var F = tipo de G; if (F === "string" || F === "número") {var E = this.parentNode; var D = A (E) .create ("div", nulo, falso, G); para (var C = D.childNodes.length-1; C> = 0; C -) {E.insertBefore (D.childNodes [C], this.nextSibling)} G = this.nextSibling; E.removeChild (this)} else {if (F === "object" || (F === "function" && !! G.nodeName)) {this.parentNode.replaceChild (G, this)}} return B? G: this}, remova: function () {this.parentNode.removeChild (this); return null}}} (); DOMAssistant.attach (DOMAssistant.Content); DOMAssistant.Events = function () {var A = 1; return {publicMethods: ["triggerEvent", "addEvent", "removeEvent", "preventDefault", "cancelBubble"], init: function () {window.addEvent = this.addEvent; window.removeEvent = this.removeEvent; DOMAssistant. preventDefault = this.preventDefault; DOMAssistant.cancelBubble = this.cancelBubble}, triggerEvent: function (C, F) {if (this.events && this.events [C]) {var E = {type: C, target: F || this , currentTarget: this, bubbles: false, cancelable: false, preventDefault: function () {}, stopPropagation: function () {}, timeStamp: + new Date ()};for (var D = 0, B = this.events [C] .length; D <B; D ++) {this.events [C] [D] .call (this, E)}} else {if (typeof this [ "on" + C] === "function") {this ["on" + C] .call (this, E)}} return this}, addEvent: function (B, D) {if (/ ^ DOM / .test (B)) {if (this.addEventListener) {this.addEventListener (B, D, false)}} else {if (! this.uniqueHandlerId) {this.uniqueHandlerId = A ++} if (! (D.attachedElements && D. attachElements [B + this.uniqueHandlerId])) {if (! this.events) {this.events = {}} if (! this.events [B]) {this.events [B] = []; var C = this ["on" + B]; if (C) {this.events [B] .push (C)}} this.events [B] .push (D); this ["on" + B] = DOMAssistant. Events.handleEvent; if (typeof this.window === "objeto") {this.window ["on" + B] = DOMAssistant.Events.handleEvent} if (! D.attachedElements) {D.attachedElements = {}} D.attachedElements [B + this.uniqueHandlerId] = true}} retornar isso},handleEvent: function (B) {var G = B || event; var H = G.target || G.srcElement || document; while (H.nodeType! == 1 && H.parentNode) {H = H.parentNode} G .eventTarget = H; var C = this.events [G.tipo] .slice (0), F, E; if ((F = C.length)) {for (var D = 0; D <F; D ++) {if (typeof C [D] === "function") {E = C [D] .call (this, G)}} return E}}, removeEvent: function (B, F) {if (this.events && this .eventos [B]) {var C = this.events [B]; para (var E, D = C.length-1; D> = 0; D -) {E = F || C [D]; if (C [D] === E) {excluir C [D]; C.splice (D, 1); if (E.attachedElements) {E.attachedElements [B + this.uniqueHandlerId] = null}}}} else {if (this ["on" + B] &&! F) {this ["on" + B] = null}} retornar isso}, preventDefault: function (B) {if (B && B.preventDefault) {DOMAssistant.Events .preventDefault = function (C) {C.preventDefault ()}} else {DOMAssistant.Events.preventDefault = function (C) {event.returnValue = false}} return DOMAssistant.Events.preventDefault (B)}, cancelBubble: function (B) {if (B && B.stopPropagation) {DOMAssistant.Events.cancelBubble = function (C) {C.stopPropagation ()}} else {DOMAssistant.Events.cancelBubble = function ( C) {event.cancelBubble = true}} return DOMAssistant.Events.cancelBubble (B)}}} (); DOMAssistant.attach (DOMAssistant.Events); DOMAssistant.DOMLoad = function () {var DOMLoaded = false; var DOMLoadTimer = null; var functionsToCall = []; var addedStrings = {}; var errorHandling = null; var execFunctions = function () {for (var i = 0, il = functionsToCall.length; i <il; i ++) {try {functionsToCall [ i] ()} catch (e) {if (errorHandling && typeof errorHandling === "função") {errorHandling (e)}}} functionsToCall = []}; var DOMHasLoaded = function () {if (DOMLoaded) {return} DOMLoaded = true; execFunctions ()};Events.cancelBubble = function (C) {C.stopPropagation ()}} else {DOMAssistant.Events.cancelBubble = function (C) {event.cancelBubble = true}} return DOMAssistant.Events.cancelBubble (B)}}} () ; DOMAssistant.attach (DOMAssistant.Events); DOMAssistant.DOMLoad = function () {var DOMLoaded = false; var DOMLoadTimer = null; var functionsToCall = []; var AddedStrings = {}; var errorHandling = null; var execFunctions = function ( ) {for (var i = 0, il = functionsToCall.length; i <il; i ++) {try {functionsToCall [i] ()} catch (e) {if (errorHandling && typeof errorHandling === "função") {errorHandling ( e)}}} functionsToCall = []}; var DOMHasLoaded = function () {if (DOMLoaded) {return} DOMLoaded = true; execFunctions ()};Events.cancelBubble = function (C) {C.stopPropagation ()}} else {DOMAssistant.Events.cancelBubble = function (C) {event.cancelBubble = true}} return DOMAssistant.Events.cancelBubble (B)}}} () ; DOMAssistant.attach (DOMAssistant.Events); DOMAssistant.DOMLoad = function () {var DOMLoaded = false; var DOMLoadTimer = null; var functionsToCall = []; var AddedStrings = {}; var errorHandling = null; var execFunctions = function ( ) {for (var i = 0, il = functionsToCall.length; i <il; i ++) {try {functionsToCall [i] ()} catch (e) {if (errorHandling && typeof errorHandling === "função") {errorHandling ( e)}}} functionsToCall = []}; var DOMHasLoaded = function () {if (DOMLoaded) {return} DOMLoaded = true; execFunctions ()};attach (DOMAssistant.Events); DOMAssistant.DOMLoad = function () {var DOMLoaded = false; var DOMLoadTimer = null; var functionsToCall = []; var AddedStrings = {}; var errorHandling = null; var execFunctions = function () {para (var i = 0, il = functionsToCall.length; i <il; i ++) {try {functionsToCall [i] ()} catch (e) {if (errorHandling && typeof errorHandling === "função") {errorHandling (e)} }} functionsToCall = []}; var DOMHasLoaded = function () {if (DOMLoaded) {return} DOMLoaded = true; execFunctions ()};attach (DOMAssistant.Events); DOMAssistant.DOMLoad = function () {var DOMLoaded = false; var DOMLoadTimer = null; var functionsToCall = []; var AddedStrings = {}; var errorHandling = null; var execFunctions = function () {para (var i = 0, il = functionsToCall.length; i <il; i ++) {try {functionsToCall [i] ()} catch (e) {if (errorHandling && typeof errorHandling === "função") {errorHandling (e)} }} functionsToCall = []}; var DOMHasLoaded = function () {if (DOMLoaded) {return} DOMLoaded = true; execFunctions ()};var DOMHasLoaded = function () {if (DOMLoaded) {return} DOMLoaded = true; execFunctions ()};var DOMHasLoaded = function () {if (DOMLoaded) {return} DOMLoaded = true; execFunctions ()};
/ * @ cc_on @if (@_ win32 || @ _win64) if (document.getElementById) {document.write ("<script id =" \ & quot; ieScriptLoad \ & quot; "defer =" adiar "src =" \ & quot; //: \ & quot; "> <\ / script>"); document.getElementById ("ieScriptLoad"). onreadystatechange = function () {if (this.readyState === "complete") {DOMHasLoaded ()}}} @fim @ * /
if (document.addEventListener) {document.addEventListener ("DOMContentLoaded", DOMHasLoaded, false)} if (/KHTML|WebKit|iCab/i.test (navigator.userAgent)) {DOMLoadTimer = setInterval (function () {if (/) carregado | completo / i.test (document.readyState)) {DOMHasLoaded (); clearInterval (DOMLoadTimer)}}, 10)} window.onload = DOMHasLoaded; retornar {DOMReady: function () {for (var i = 0, il = argument.length, funcRef; i <il; i ++) {funcRef = argument [i]; if (! funcRef.DOMReady &&! AddedStrings [funcRef]) {if (typeof funcRef === "string") {AddedStrings [funcRef] = true; funcRef = new Function (funcRef)} funcRef.DOMReady = true; functionsToCall.push (funcRef)}} if (DOMLoaded) {execFunctions ()}}, setErrorHandling: function (funcRef) {errorHandling = funcRef}}} ( ); DOMAssistant.DOMReady = DOMAssistant.DOMLoad.DOMReady;
if (redirect! = 'int' && redirect! = 'banner'

}
var url;
function checkLinks () {
    if (typeof (domains) == "object") {
        DOMAssistant. $ ("body a"). each (function () {
            if (in_object (domains, DOMAssistant. $ (this) .href)) {   
                if (DOMAssistant. $ (this) .href.toLowerCase (). indexOf (" https://redirect.anhtrainang.com ")! = 7) {
                    if (redirect == 'int') {
                        url = " https: //redirect.anhtrainang.com ? link = "+ DOMAssistant. $ (this) .href;
                    } else {
                        url =" https://redirect.anhtrainang.com ? link = "+ DOMAssistant. $ (this) .href;

                    DOMAssistant. $ (This) .setAttributes ({href: url});
                }       
            }
        });
    } else if (typeof (exclude_domains) == "object") {
        DOMAssistant. $ ("body a"). each (function () {
            if (! in_object (exclude_domains, DOMAssistant. $ (this) .href) && DOMAssistant. $ (this) .href.substr (0.10)! = "javascript") {               
                if (DOMAssistant. $ (this) .href.toLowerCase (). indexOf (" https://redirect.anhtrainang.com ")! = 7) {                       
                    if (redirect == 'int') {
                        url = " https://redirect.anhtrainang.com ? Link ="
                    } else {
                        url = " https://redirect.anhtrainang.com ? link =" + DOMAssistant. $ (this) .href;
                    }
                    DOMAssistant. $ (This) .setAttributes ({href: url});           
                }
            }
        });
    }
}
função in_object (obj, val) {
 for (var i = 0, l = obj.length; i <l; i ++) {
        var re = new RegExp (obj [i], "i"); 
        if (val.search (re)> 0) {
            return true;
  }
 }
 return false;
}
DOMAssistant.DOMReady (checkLinks);
//]]>
</script> </ b: if>
anhtrainang.com e www.anhtrainang.com são o link principal do seu blog, corrija-o ou você será redirecionado incorretamente.
https://redirect.anhtrainang.com é o URL do blog de redirecionamento que você criou na etapa 1, substitua-o corretamente ou ocorrerá um erro.

Além disso, você também pode criar manualmente um link de redirecionamento no site do blog de redirecionamento criado na etapa 1.

Compartilhe modelos e instruções para criar um site de redirecionamento de link externo automatizado para blogspot
Criar links de redirecionamento manualmente

Você clica em Criar link de redirecionamento (Beta) na barra de menu do blog de redirecionamento, em seguida, insere a url para criar o link e copia o link abaixo, este é o link de redirecionamento criado.

Compartilhe modelos e instruções para criar um site de redirecionamento de link externo automatizado para blogspot

Etapas para criar links manualmente
  • Clique no botão para criar o link acima, um pop-up aparecerá
  • Insira o link para criar
  • Clique no botão criar link
  • Copie o url recém-criado, vá para uma nova guia e teste

resumo

Este é um artigo que compartilha o modelo de redirecionamento do blogspot e instrui a criar um site de redirecionamento de link externo automatizado para o blogspot. Espero ser útil para você. Se for bom, por favor, gostaria de me apoiar!