Зробити StackOverflow Explode (закладка) [закрито]


28

Іноді люди засмучуються в мережі StackExchange (конкретно ТАК).

Змінено логотип stackoverflow

Ваше завдання - створити закладку, яка змушує StackOverflow вибухнути / імплодувати / знищити певним чином. Це забезпечить приємніший спосіб розповсюдження наших розчарувань.

Правила:

  • він повинен бути у вигляді закладки
  • повинні працювати в Chrome і Firefox (остання стабільна версія)
  • jQuery є на сайті, тому ви можете ним користуватися
  • не створюється тег сценарію, який тягне explosionThisPage.js або подібне

Підрахунок балів - це кількість символів, які потрібно скопіювати та вставити, крім:

  • -1, якщо ви включите пояснення
  • -5 за кожний внесок
  • -10, якщо ви не використовуєте jQuery
  • -10, якщо він видає вибух
  • + 9e72, якщо це дійсно завдає шкоди сайту (F5 має відновити шкоду)

Якщо gif відволікає, видаліть його.


7
Спеціалізація IMO недостатньо гостра для об'єктивного визначення того, чи відповідає подання.
Пітер Тейлор

у коментарі, як це не моє: javascript: varwww_WHAK_com = 'http://www.is-a-jerk.com/flash/url.asp?flash=10&insult=off&destroy=' + encodeURIComponent(top.location.href.replace('http://', '').replace('https://', '')); top.location.href = www_WHAK_com; void(0);
SeanC

1
Мій коментар стосувався не системи балів, а специфікації завдання.
Пітер Тейлор

4
Дійсно? Це має бути мінус 9*10**72 балів, якщо він фактично вдається завдати шкоди сайту, а потім відновити його, коли користувач перезавантажує сторінку. Це був би досить подвиг.
Blacklight Shining

2
@FakeRainBrigand IMO, спричиняючи реальну шкоду сайту, який якимось чином відремонтується при перезавантаженні, набагато більш вражаючий, ніж просто заподіяння шкоди сайту.
Blacklight Shining

Відповіді:


27

Курка!

Оцінка: 46 - 1 (пояснення) - 5 * 17 (голосів) = -40

javascript:$('*:not(:has(*))').text('chicken')

Він просто бере кожен елемент без дітей і замінює його текстом 'chicken'.

Зразкові скріншоти:
більше курчати
це питання підтверджено

зображення


Дивовижна ідея :-) Також цікаво побачити такі речі, як "відповіла курка" чи заголовок сторінки, в яких є слова, що не мають курки ... Чому?
Бриганда

@FakeRainBrigand Так? Назва сторінки стає для мене "куркою" ...
Doorknob

Більш довга, але більш ретельна версія, частково заснована на моєму записі:javascript:void($(':not(iframe,script,style)').contents().each(function(){if(this.nodeType==3)this.nodeValue=this.nodeValue.replace(/\w+/g,'chicken')}))
Ільмарі Каронен

@Doorknob, вітаю, у вас була оцінка 15, яка була найнижчою (вибачте, що мені потрібно було так довго, щоб прийняти її). Якби я міг це зробити ще раз, я б хотів проголосувати вартістю -15.
Бриганд

1
Повинен був бути ХОДОР!
SztupY

27

Ось мій запис, який я буду називати п'яним :

javascript:void(setInterval(function(){c='1234567890poiuytrewqasdfghjklmnbvcxzZXCVBNMLKJHGFDSAQWERTYUIOP=)(/&%25$%23"!1';$(':not(iframe,script,style)').contents().each(function(){if(this.nodeType==3&&/\S/.test(this.nodeValue)){a=this.nodeValue.split('');x=0;for(i=0;i<a.length;i++){r=Math.random()*9999;if(r<10){x=1;j=c.indexOf(a[i]);a[i]=(r<4%3F(t=a[i-1],a[i-1]=a[i],t):r<5%3F'':r<6%3Fa[i]+a[i]:j<0%3Fa[i]:c.charAt(j+(r<8%3F1:-1)))}}if(x)this.nodeValue=a.join('')}})},100))

Маючи 474 символів, це, мабуть, не виграє жодних призів за гольф, але я сподіваюсь поповнити це в нагородах. :)

Ось той самий код знешкоджено:

setInterval(function () {
  var c = '1234567890poiuytrewqasdfghjklmnbvcxzZXCVBNMLKJHGFDSAQWERTYUIOP=)(/&%$#"!1';
  $(':not(iframe,script,style)').contents().each(function () {
    if (this.nodeType==3 && /\S/.test(this.nodeValue)) {
      var a = this.nodeValue.split('');
      var x = 0;
      for (i = 0; i < a.length; i++) {
        r = Math.random() * 9999;
        if (r < 10) {
          x = 1;
          j = c.indexOf(a[i]);
          a[i] = ( r < 4 ? (t = a[i-1], a[i-1] = a[i], t)
                 : r < 5 ? ''
                 : r < 6 ? a[i] + a[i]
                 : j < 0 ? a[i] : c.charAt(j + (r < 8 ? 1 : -1)) ); 
        }
      }
      if (x) this.nodeValue = a.join('');
    }
  });
}, 100);

Це лише випадкове змінення тексту на сторінці, заміна сусідніх символів, видалення чи дублювання символів або заміна їх на сусідні з ними клавіатури. Ефект спочатку дещо тонкий, але залиште його деякий час, і вміст сторінки неминуче перетвориться на безлад п'яного введення:

Іди додому, ТАК, ти п'яний!

Пс. Код жодним чином не є специфічним для SO, тому він працюватиме на будь-якому веб-сайті, що використовує jQuery. Спробуйте це у Вікіпедії для веселих результатів. Ідея заснована на чомусь, що я написав років тому як творчу інтерпретацію виклику "99 пляшок пива": моя версія вводила повільно зростаючу кількість друкарських помилок у кожному вірші, поки останні не були впізнавані. Якщо хтось хоче його побачити, ось оригінальний код Perl .


6
Більше зніміть дислексинатор (сорру, я друкую, поки він працює)
TheDoctor

16

Я не знаю, чому це було знято, мені це подобається :)

Це не найкоротше, але я думаю, що це досить:

133 символів -1

javascript:(function(){setInterval(function(){$("div, span").eq(Math.round(Math.random()*$("div, span").length)).hide(500)},90)}());

Безголівки:

javascript:(function(){  
         window.setInterval(function() {
                 i = Math.round(Math.random() * $("div, span").length);
                 $("div, span").eq(i).hide("slow");
         } , 90);
}());

Пояснення: Я сподіваюся, що це враховується, цей сценарій імпровізує сайт замість того, щоб його вибухати;) Це просто вибирає випадковий div або проміжок кожні 90 м і повільно закриває його.


+1, але випадковий () не ефективний для повного і контрольованого знищення, все одно мені подобається :)
Даніель Брюгнара

Просто кинув його у вікно URL, і нічого не трапилось ,,,?
WallyWest

Вибачте, Валлі, не побачив ваш коментар. Вам потрібно зберегти його як закладку.
Fels

12

Тому що не було визначено, чи виграє вищий чи нижчий бал ...

javascript:$(".vote-down-off").click()

База: 38
бонусів:

  • + 9e72 Постійні пошкодження.

Підсумкова оцінка: 900000000000000000000000000000000000000000000000000000000000000000000000000000038

До речі, я цього не пробував.


1
haha До речі, якщо ви запитаєте JavaScript: 9e72+38 === 9e72:-)
Brigand

3
Хто запитує javascript? Використовуйте jQuery .
Йоганнес Кун


4
Помилка ... я повинен голосувати вниз або вгору ...?
Друг Кіма

1
О, я розумію ... він натискає кнопки з класом "відключення голосу", якщо ви його використовуєте. Це кодовий виклик з тегом, який означає, що найнижчий бал виграє.
Nzall

8

Мій цілий 245 символів.

В основному не коротше, але мені це подобається ;-)

javascript:document.body.innerHTML+='<img%20id="bigMsk"%20src="http://i.stack.imgur.com/VWPZg.gif">';document.getElementById('bigMsk').setAttribute('style','z-index:1;opacity:.6;display:block;position:fixed;top:0;left:0;width:100%;height:100%;');

-1: Пояснення:

  • Я використовую приємне запропоноване анімаційне зображення із запитання,
  • За допомогою CSS я розміщую їх над цілою сторінкою із непрозорістю 60%.

:

document.body.innerHTML+=
   '<img%20id="bigMsk"%20src="http://i.stack.imgur.com/VWPZg.gif">';
document.getElementById('bigMsk').setAttribute('style',
    'z-index:1;
     opacity:.6;
     display:block;
     position:fixed;
     top:0;
     left:0;
     width:100%;
     height:100%;
');

Переважно читабельний сам по собі ;-)

-10 Ні JQuery

Альтернатива:

Є альтернатива:

javascript:document.body.innerHTML+='<img%20id="bigMsk"%20src="http://i.stack.imgur.com/aTtWM.gif">';document.getElementById('bigMsk').setAttribute('style','z-index:1;opacity:.6;display:block;position:fixed;top:0;left:0;width:100%;height:100%;');

На основі немодифікованого GIF, знайденого у Вікісховищі: Файл: Анімований вогонь від nevit.gif

Зображення: Зображення з Вікіпедії

Зразок:

введіть тут опис зображення


Це круто!
Бриганд

5

Гаразд, я думаю, що це має відповідати критеріям:

javascript:document.write("<h1>Exploded</h1>")

Замінює поточну сторінку на "Вибухнув"

Оцінка: 46
-1 Пояснення
-10 Немає jQuery

35


5

Це приємно і спричиняє зовсім небагато відставання: D

javascript:setInterval(function(){document.body.innerHTML=document.body.innerHTML.replace(/\d+/g,function(){return Math.random()*100|0});},500)

Він просто встановлює інтервал, який замінює всі рядки цифр випадковим числом від 0 до 100. Двічі в секунду. Це створює купу помилок, як ви могли очікувати, і я міг би це виправити, щоб зупинити всі 404, коли URL-адреси зображення змінюються, але я думаю, що це веселіше таким чином, і це код гольфу. : D

Оцінка:

  • 132 база
  • -1 пояснення
  • -5 upvote
  • -10 немає jQuery

Загальна оцінка: 116


Не працює у firefox.
Йоганнес Кун

@JohannesKuhn Що це робить у FF? Працює в Chrome
Doorknob

Відображає порожню сторінку з номером.
Йоганнес Кун

@JohannesKuhn Я думаю, що я це виправив; чи function x(){document.body.innerHTML=document.body.innerHTML.replace(/\d+/g,function(){return Math.random()*100|0})}setInterval(x,500)працює для вас зараз?
Дверна ручка

Так, але сингл ;в кінці зробив би те саме.
Йоганнес Кун

4

165 символів (164 балів)

-1 для пояснення

Ось моя спроба. Це не особливо коротко, але це весело.

javascript:r=Math.random;$("a,span,p").each(function(){var a=$(this);a.css({position:"relative"});a.delay(1E4*r()).animate({left:9E3*r()-4E3,top:9E3*r()-4E3},555)});

Він ковзає окремі елементи зі сторінки у випадкових напрямках. Я спеціально включив проміжок через виділення синтаксису (кожен колір має окремий проміжок).

r = Math.random;
$('a,span,p').each(function () {
    var t = $(this);
    t.css({
        position: 'relative'
    });

    t.delay(r()*10000).animate({
        left: r() * 9e3 - 4e3,
        top: r() * 9e3 - 4e3
    }, 555);
});

Звичайно, це можна скоротити, видаливши деякі теги, але дайте мені знати, чи є способи скоротити його, не знижуючи продуктивність.


4

181 151 символів - 1 (пояснення) - 10 (немає jQuery) = 140 балів

javascript:i=setInterval(function(){for(var a=document;0!==a.childNodes.length;)a=a.childNodes[a.childNodes.length-1];a!==document?a.parentNode.removeChild(a):clearInterval(i)},50);

Ще кілька символів можна зберегти, опустивши function(){та замість них рядок. Також зверніть увагу на вилучення загальновживаних властивостей, наприклад, це c='childNodesдозволяє нам робити z[c]замість z.childNodes.

javascript:h=setInterval('d=z=document;c="childNodes";for(l="length";z[c][l];z=z[c][z[c][l]-1]);z!=d?z.parentNode.removeChild(z):clearInterval(h)',50);

Я думаю, я міг би заробити менше очок, використовуючи jQuery і не пересуваючи властивості, але добре.

Безголівки:

var intervalHandle = setInterval(function() {
    var lastElement = document;
    //get last element
    while (lastElement.childNodes.length !== 0) {
        lastElement = lastElement.childNodes[lastElement.childNodes.length - 1];
    }

    if(lastElement !== document) {
        lastElement.parentNode.removeChild(lastElement);
    } else {
        clearInterval(intervalHandle);
    }
}, 50);

В основному це знаходить останній елемент DOM на сторінці та видаляє його. Тоді продовжує робити це кожні 50 мілісекунд, що я вважав якоюсь середньою приємною швидкістю бачити, як сторінка виривається з нуля. Це терапевтично, клянусь.

Відмова: Я зробив це деякий час тому і вирішив поділитися цим, оскільки тут видається доречним. Джерело знаходиться в моєму сховищі GitHub .


Це чудово! Я відредагував його, щоб включити версію з більшою кількістю гольфу, яка зберігає кілька символів. Сподіваюся, ви не заперечуєте. Це функціонально ідентично.
Бриганд

@FakeRainBrigand Зовсім не дякую! Насправді ви допомогли мені навчитися деяких нових крутих хитрощів, що було моїм початковим наміром при його написанні. Знову дякую!
Альфа

3

Javascript, 281

javascript:$('body').html().split('<code>javascript:').forEach(function (a) {if (a.indexOf("location")*a.indexOf("write")*a.indexOf("noscript")==-1) try{exec(a.split("</code>")[0].replace(/&#(\d+)/g, function(match, dec) {return String.fromCharCode(dec);}))} catch (e) {}});void 0;

Він отримує кожну відповідь на питання у формі <code>javascript:(stuff)</code>, яка не змінює місцеположення, і запускає їх усі.


Хм ... я бачу багато пробілів, які здаються знімними. Можливо, вам слід її зняти.
Джон Дворак

3
Я впевнений, що це не відповідає правилу: "не створюється тег сценарію, який тягне eksplosionThisPage.js або подібне". Крім того, вона працює не на кожній сторінці SO, тільки на цій. Крім того, це завдає реальної шкоди на запитання про XSS, тому вам слід додати 9e72 до своєї оцінки.
Джон Дворак

2

Мені подобається цей ефект. Це в основному перемикає ефект слайда для кожного діва на сайті кожні 1 мілісекунда.

javascript:setInterval(function(){$('div').toggle()},1)

Оцінка

56
-1 Explanation
--------------
55 Total

Добре, але просто toogle теж би спрацював:javascript:setInterval(function(){$('div').toggle(88)},1)
Fels
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.