Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.10.2013, 12:03
Новичок на форуме
Отправить личное сообщение для Carl_C Посмотреть профиль Найти все сообщения от Carl_C
 
Регистрация: 20.10.2013
Сообщений: 3

wallbase.cc grab
new function disshit() 
{ 
var re0 = /http\:\/\/thumbs\.wallbase\.cc\/\/(.+?)\/thumb-(.+?)\.(.+?)/gi; 
var loc = RegExp.$1; 
var num = RegExp.$2; 
var ext = RegExp.$3; 
return ("http://wallpapers.wallbase.cc/"+loc+"/wallpaper-"+num+"."+ext+") 
} 
disshit 
document.body.innerHTML = document.body.innerHTML.replace("http://wallbase.cc/wallpaper/"+num+"","http://wallpapers.wallbase.cc/"+loc+"/wallpaper-"+num+"."+ext+"); 
alert(1);


должен брать три переменные из thumba галереи и заменять рефералла, используя их.
подскажите пожалуйста, где я ошибся.
Ответить с цитированием
  #2 (permalink)  
Старый 20.10.2013, 12:26
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Carl_C
подскажите пожалуйста, где я ошибся.
Много где.
В 7й и 10й строке непонятные +" в конце
В 9й строке - это типа вызов функции? тогда надо скобки добавить "()"
В 10й строке используются переменные, которые не доступны для данной области видимости (num, loc, ext)
Где задается строка для разбора регуляркой?
Где используется сама регулярка re0?
В общем, какой-то набор кода, как по мне. Хотя может всё дело в том, что я просто не знаю, что такое "wallbase.cc grab"

Последний раз редактировалось BETEPAH, 20.10.2013 в 12:29.
Ответить с цитированием
  #3 (permalink)  
Старый 20.10.2013, 13:21
Новичок на форуме
Отправить личное сообщение для Carl_C Посмотреть профиль Найти все сообщения от Carl_C
 
Регистрация: 20.10.2013
Сообщений: 3

// ==UserScript==
// @name 111
// @include [url]http://wallbase.cc/search*[/url]
// ==/UserScript==

var tag0 = document.getElementsByTagName('body');
var re0 = /http\:\/\/thumbs\.wallbase\.cc\/\/(.+?)\/thumb-(.+?)\.(.+?)/gi;
var result = re0.exec(tag0);
var loc = RegExp.$1;
var num = RegExp.$2;
var ext = RegExp.$3;
document.body.innerHTML = document.body.innerHTML.replace("http://wallbase.cc/wallpaper/"+num, "http://wallpapers.wallbase.cc/"+loc+"/wallpaper-"+num+"."+ext);


попробовал исправится. не судите строго. опыта в JS нет вообще.

Последний раз редактировалось Carl_C, 20.10.2013 в 13:37.
Ответить с цитированием
  #4 (permalink)  
Старый 20.10.2013, 14:03
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

в 6й строке получаете массив из элементов "body", а потом в 8й строке пытаетесь подсунуть этот массив exec'у с регуляркой.
Ответить с цитированием
  #5 (permalink)  
Старый 20.10.2013, 15:32
Новичок на форуме
Отправить личное сообщение для Carl_C Посмотреть профиль Найти все сообщения от Carl_C
 
Регистрация: 20.10.2013
Сообщений: 3

я так и хотел.
в 6 строке взять все элементы, а в 8 оставить только нужные.
проблема в том, что я не знаю как этим массивом управлять.
плюс переменные постоянно возвращаются или пустыми или случайным словом их всего html кода.
я с синтаксисом знаком только по паре десятков статей.
Ответить с цитированием
  #6 (permalink)  
Старый 20.10.2013, 17:03
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Carl_C
я так и хотел.
в 6 строке взять все элементы, а в 8 оставить только нужные.
У массива нет такого метода по умолчанию. Или прототипируйте или метод применяйте к элементу, а не к массиву. Да и не зачем массив держать ради одного элемента. У вас же на странице один body, надеюсь?
<div>
	<p>http://thumbs.wallbase.cc//locpereloc/thumb-filename.gif</p>
	<p>http://thumbs.wallbase.cc//locpereloc/thumb-filename2.gif</p>
</div>
<input type="button" id="replace" value="заменить" />
<script>
document.getElementById('replace').onclick = function(){
	var tag0 = document.getElementsByTagName('div')[0];
	var re0 = /http\:\/\/thumbs\.wallbase\.cc\/\/(.+?)\/thumb-(.+?)\.(.+?)/gi;
	tag0.innerHTML = tag0.innerHTML.replace(re0, 'http://wallpapers.wallbase.cc/$1/wallpaper-$2.$3');
}
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск