Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Скрипт против картинок Maximusa (https://javascript.ru/forum/offtopic/43844-skript-protiv-kartinok-maximusa.html)

Gozar 23.12.2013 19:55

Скрипт против картинок Maximusa
 
Для Chrome - Tempermonkey

// ==UserScript==
// @name       javascript.ru
// @namespace  http://javascript.ru/
// @version    0.3
// @description  enter something useful
// @match      http://*javascript.ru/*
// @copyright  2012+, You
// ==/UserScript==


var on = 'addEventListener',  off = 'removeEventListener',
  q = function (s, e) { var q, d = document, e = e || d, a = [], f, i; if (!s) { return d };
  if (typeof e == 'function') { f = e; e = d; } q = e.querySelectorAll(s);
  for (i=0; i < q.length; i++) { if(f) { q[i] = f(q[i]); if(q[i]) {a.push(q[i])}} else {a.push(q[i])}} return a};

    q('table td.alt1 div:first-child img', function (el) {
        
            el.style.maxWidth = '100px';
            el.style.maxHeight = '100px';
            el.addEventListener('click', function (e) {
            
                if (this.style.maxWidth == '100px') {
                    this.style.maxHeight = '100%';
                    this.style.maxWidth = '100%';
                    this.style.width = '600px';
                }
                else {
                    this.style.maxWidth = '100px';
                    this.style.maxHeight = '100px';
                }
                
        }, false);
});



Для Firefox - Gracemonkey

// ==UserScript==
// @name        javascript.ru
// @namespace   javascript.ru
// @include     http://*javascript.ru/*
// @version     0.1
// @grant       none
// ==/UserScript==


var on = 'addEventListener',  off = 'removeEventListener',
  q = function (s, e) { var q, d = document, e = e || d, a = [], f, i; if (!s) { return d };
  if (typeof e == 'function') { f = e; e = d; } q = e.querySelectorAll(s);
  for (i=0; i < q.length; i++) { if(f) { q[i] = f(q[i]); if(q[i]) {a.push(q[i])}} else {a.push(q[i])}} return a};

    q('table td.alt1 div:first-child img', function (el) {
        
            el.style.maxWidth = '100px';
            el.style.maxHeight = '100px';
            el.addEventListener('click', function (e) {

            
                if (this.style.maxWidth == '100px') {
                    this.style.maxHeight = '100%';
                    this.style.maxWidth = '100%';
                    this.style.width = '600px';
                }
                else {
                    this.style.maxWidth = '100px';
                    this.style.maxHeight = '100px';
                }
                
        }, false);
});


https://github.com/seolog/corn.js

Gozar 23.12.2013 19:58

Если убрать if (node && node.innerHTML.search(/maxi/) != -1) { то все картинки будут уменьшаться.

cyber 23.12.2013 20:00

запили как расширение что ли, а еще можно просто добавить его в игнор и не будешь видить его сообщений.

Gozar 23.12.2013 20:01

Цитата:

Сообщение от cyber
запили как расширение что ли)

https://addons.mozilla.org/ru/firefo.../greasemonkey/
https://chrome.google.com/webstore/d...mpobfkfo?hl=ru

Просто вставь вышеприведенный код.

Maxmaxmaximus6 23.12.2013 20:04


Gozar 23.12.2013 20:05

Maxmaxmaximus6,
у меня уже подключен скрипт и я не вижу что ты там запилил. Какой же это кайф :)

cyber 23.12.2013 20:06

Gozar, не, спс, закину код в расширение)

cyber 23.12.2013 20:58

Gozar, у меня не работает почему то, это расширение не выполняет скрипты на странице, в настойках дал доступ к ссылкам и прописал путь, это все что бы в faq, подключил
// ==UserScript==
// @name        javascript.ru
// @namespace   javascript.ru
// @include     [url]http://*javascript.ru/*[/url]
// @version     1
// @grant       none
// ==/UserScript==

Gozar 23.12.2013 21:20

// ==UserScript==
// @name        javascript.ru
// @namespace   javascript.ru
// @include     http://*javascript.ru/*
// @version     2
// @grant       none
// ==/UserScript==

var on = 'addEventListener', off = 'removeEventListener',
  q = function (s, e) { var q, d = document, e = e || d, a = [], f, i; if (!s) { return d };
  if (typeof e == 'function') { f = e; e = d; } q = e.querySelectorAll(s);
  for (i of q) { if(f) { i = f(i); if(i) {a.push(i)}} else {a.push(i)}} return a};


    q('table td.alt1 div:first-child img').forEach(function (el) {
            el.style.maxWidth = '100px';
            el.style.maxHeight = '100px';
            el.addEventListener('click', function (e) {
            
                if (this.style.maxWidth == '100px') {
                    this.style.maxHeight = '100%';
                    this.style.maxWidth = '100%';
                    this.style.width = '600px';
                }
                else {
                    this.style.maxWidth = '100px';
                    this.style.maxHeight = '100px';
                }
                
        }, false);
});


Новая версия. Работает с любыми картинками, а то вдруг он ник сменит. По клику увеличивает картинку.

cyber 23.12.2013 21:38

Gozar, короче заработало, только твой код ошибку выкидует.

Gozar 23.12.2013 21:53

Цитата:

Сообщение от cyber
Gozar, короче заработало, только твой код ошибку выкидует.

Какую? У меня ничего не выкидует. Ты программист? Нельзя по человечески багрепорт сделать?

cyber 23.12.2013 22:03

Gozar, вот ошибка
Цитата:

ERROR: Syntax error @ 'javascript.ru'!
Сначала подумал проблема в коде но в коде нет такого символа, потом в расширение, при смени кода все заработала, ошибка в этой части:
(из за того что код сжат разбираться не стал)
var on = 'addEventListener', off = 'removeEventListener',
  q = function (s, e) { var q, d = document, e = e || d, a = [], f, i; if (!s) { return d };
  if (typeof e == 'function') { f = e; e = d; } q = e.querySelectorAll(s);
  for (i of q) { if(f) { i = f(i); if(i) {a.push(i)}} else {a.push(i)}} return a};


Если запустить из консоли так же вылетает ошибка.

Цитата:

Сообщение от Gozar
Нельзя по человечески багрепорт сделать?

Можно:)

Gozar 23.12.2013 22:06

Цитата:

Сообщение от cyber
Можно

Начинаем с начала. В браузере Google Chrome в расширении Temper Monkey выбрасывает что-то невминяемое ... и далее по тексту.

cyber 23.12.2013 22:08

Цитата:

Сообщение от Gozar
Начинаем с начала. В браузере Google Chrome в расширении Temper Monkey выбрасывает что-то невминяемое ... и далее по тексту

Да, тьфу блин браузер забыл указать, так же как если просто выполнить код в консоли

Gozar 23.12.2013 22:24

Обновил 1 сообщение. Смотри код для Chrome и Firefox.

Gozar 23.12.2013 22:25

Цитата:

Сообщение от cyber
разбираться не стал)

У хрома нет
for (i of q)
переделал на кроссбраузерный вариант.

Я уже на EcmaScript 6, гыгы :)

Яростный Меч 23.12.2013 22:43

поставил, заценил, работает )
можно было jQuery юзать, оно есть на странице.

cyber 23.12.2013 22:48

Цитата:

Сообщение от Gozar
У хрома нет
for (i of q)

кстати, первое на что подумал)

Gozar 23.12.2013 22:57

Цитата:

Сообщение от Яростный Меч
можно было jQuery юзать, оно есть на странице.

А как же пиар?! :)

Да, да, совсем забыл. Вот ссылочка https://github.com/seolog/corn.js переходите пожалуйста, переводите денежки на кошелек, помогите в развитии или сокращении corn проекта ... или можно просто плюсануть в карму, а я вам лайков 100 штук вконтактиковых взамен шлепну на акк ...

(это шутка, если кто не догонит)

cyber 23.12.2013 22:59

Цитата:

Сообщение от Gozar
как же пиар?!

А в чем он заключается в данной ситуации?

Gozar 23.12.2013 23:04

Цитата:

Сообщение от cyber
А в чем он заключается в данной ситуации?

Цитата:

Сообщение от Gozar
Вот ссылочка https://github.com/seolog/corn.js переходите пожалуйста, переводите денежки на кошелек, помогите в развитии или сокращении corn проекта ...

;)

cyber 23.12.2013 23:04

Gozar, вот почему ты мне давал ссылку на этот проект:)

Maxmaxmaximus6 24.12.2013 02:30

Gozar,
q('#one')[0][off]('click', clkFunc, false);


дальше не читал


Gozar 24.12.2013 02:55

Цитата:

Сообщение от Maxmaxmaximus6
дальше не читал

Вот и не надо. Получать элемент по ид нужно по document.getElementById, а это коллективная функция. И да, твоя картинка теперь такая маленькая :) Буду воспринимать их как твои аватары.

cyber 24.12.2013 02:58

Gozar, ну я с ним согласен, синтаксис какой то извращенный:)

Gozar 24.12.2013 03:00

Цитата:

Сообщение от cyber
синтаксис какой то извращенный

Это консольная либа, не нравиться не юзай.

Maxmaxmaximus6 24.12.2013 03:05

Цитата:

Сообщение от Gozar
И да, твоя картинка теперь такая маленькая Буду воспринимать их как твои аватары.

пруф)! скрин!

Цитата:

Сообщение от Gozar
Это консольная либа, не нравиться не юзай.

И тем не менее синтаксис ужасен)

Gozar, сделай чтобы по клику зумить можно было, и открывалась галерея на все вложенные картинки в посте.

Gozar 24.12.2013 03:19

Цитата:

Сообщение от Maxmaxmaximus6
И тем не менее синтаксис ужасен)

И тем не менее ты дегенерат.

Maxmaxmaximus6 24.12.2013 03:21

пофиксил твой говнокод

// ==UserScript==
// @name       javascript.ru
// @namespace  [url]http://javascript.ru/[/url]
// @version    0.3
// @description  enter something useful
// @match      [url]http://*javascript.ru/*[/url]
// @copyright  2012+, You
// ==/UserScript==

(function() {


    var selector = 'table td.alt1 div:first-child img';
    var images = document.querySelectorAll(selector) || [];
    var imagesArr = Array.prototype.slice.call(images);

    imagesArr.forEach(function(image) {

      var zoom = false;

      image.style.maxWidth = '100px';
      image.style.maxHeight = '100px';

      image.addEventListener('click', function() {

        if (!zoom) {
          this.style.maxHeight = '';
          this.style.maxWidth = '';
        }
        else {
          this.style.maxWidth = '100px';
          this.style.maxHeight = '100px';
        }

        zoom = !zoom;
      });

    });


}());


сжатая версия

// ==UserScript==
// @name       javascript.ru
// @namespace  [url]http://javascript.ru/[/url]
// @version    0.3
// @description  enter something useful
// @match      [url]http://*javascript.ru/*[/url]
// @copyright  2012+, You
// ==/UserScript==
(function(){var c=document.querySelectorAll("table td.alt1 div:first-child img")||[];Array.prototype.slice.call(c).forEach(function(a){var b=!1;a.style.maxWidth="100px";a.style.maxHeight="100px";a.addEventListener("click",function(){b?(this.style.maxWidth="100px",this.style.maxHeight="100px"):(this.style.maxHeight="",this.style.maxWidth="");b=!b})})})();

cyber 24.12.2013 03:23

Maxmaxmaximus6, ахах, ты не пробывал просто не заливать идиотские картинки?

Maxmaxmaximus6 24.12.2013 03:27

Цитата:

Сообщение от cyber
ты не пробывал просто не заливать идиотские картинки?

при чем тут я? скрипт просто уменьшает большие пикчи и дает просматривать их фулсайз по желанию.

cyber 24.12.2013 03:28

Цитата:

Сообщение от Maxmaxmaximus6
при чем тут я? скрипт просто уменьшает большие пикчи и дает просматривать их фулсайз по желанию.

Не включай идиота, этот скрипт из за тебя появился)

Maxmaxmaximus6 24.12.2013 03:32

Цитата:

Сообщение от cyber
Не включай идиота, этот скрипт из за тебя появился)

Это ты идиот, он убрал проверку по имени и решил сделать просто "удобняшку для сайта". Мозги то включи ну.

cyber 24.12.2013 03:34

Цитата:

Сообщение от Maxmaxmaximus6
Это ты идиот, он убрал проверку по имени и решил сделать просто "удобняшку для сайта". Мозги то включи ну.

угу
Цитата:

Сообщение от Gozar
Новая версия. Работает с любыми картинками, а то вдруг он ник сменит. По клику увеличивает картинку.


cyber 24.12.2013 03:57

Maxmaxmaximus6, добавь что ли открытие в popup окне)

Maxmaxmaximus6 24.12.2013 04:06

Цитата:

Сообщение от cyber
добавь что ли открытие в popup окне)

зачем это О_О ?

cyber 24.12.2013 04:09

Цитата:

Сообщение от Maxmaxmaximus6
зачем это О_О ?

хз)

Maxmaxmaximus6 24.12.2013 04:10

рефакторинг от папки

// ==UserScript==
// @name       javascript.ru
// @namespace  [url]http://javascript.ru/[/url]
// @version    0.4
// @description  enter something useful
// @match      [url]http://*javascript.ru/*[/url]
// @copyright  2012+, You
// ==/UserScript==

(function() {

    var MIN_WIDTH = 100;
    var MAX_WIDTH = 700;
    var ANIMATION_TIME = 0.6;

    var selector = 'table td.alt1 div:first-child img';
    var images = document.querySelectorAll(selector) || [];
    var imagesArr = Array.prototype.slice.call(images);

    imagesArr.forEach(function(image) {
      var zoom = false;

      image.style.maxWidth = MIN_WIDTH + 'px';
      image.style.transition = ANIMATION_TIME + 's';

      image.addEventListener('click', function() {
        this.style.maxWidth = (zoom ? MIN_WIDTH : MAX_WIDTH) + 'px';
        zoom = !zoom;
      });

    });

}());

nerv_ 24.12.2013 10:29

Цитата:

Сообщение от Maxmaxmaximus6
пофиксил твой говнокод

напиши скрипт, отправляющий максимуса в другое измерение :) Можно насовсем )

kobezzza 24.12.2013 10:36

Цитата:

Array.prototype.slice.call(images);
Лучше писать:
[].slice.call(images);


Короче и работает обычно быстрее (т.к. тут нет поиска идентификатора Array, а сразу ясно, что идёт работа с массивом)


Часовой пояс GMT +3, время: 10:34.