Jadikan StackOverflow Explode (bookmarklet) [ditutup]


28

Terkadang orang frustrasi di jaringan StackExchange (khususnya SO).

logo stackoverflow dimodifikasi

Tugas Anda adalah membuat bookmarklet yang menyebabkan StackOverflow meledak / meledak / dihancurkan dengan cara tertentu. Ini akan memberikan cara yang lebih baik untuk menghilangkan rasa frustrasi kita.

Aturan:

  • itu harus dalam bentuk bookmarklet
  • harus bekerja di Chrome dan Firefox (stable terbaru)
  • jQuery ada di situs, sehingga Anda dapat menggunakannya
  • tidak ada membuat tag skrip yang menarik ledakanThisPage.js atau serupa

Penilaian adalah jumlah karakter yang perlu disalin dan ditempelkan, kecuali:

  • -1 jika Anda menyertakan penjelasan
  • -5 untuk setiap upvote
  • -10 jika Anda tidak menggunakan jQuery
  • -10 jika itu membuat suara ledakan
  • + 9e72 jika itu benar-benar membahayakan situs (F5 harus memperbaiki kerusakan)

Jika gif mengganggu, keluarkan.


7
IMO spec tidak cukup tajam untuk penentuan obyektif apakah suatu proposal memenuhi atau tidak.
Peter Taylor

dalam komentar, karena itu bukan milik saya: 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
Komentar saya bukan tentang sistem penilaian tetapi tentang spesifikasi tugas.
Peter Taylor

4
Sangat? Itu harus menjadi poin minus 9*10**72 jika itu benar-benar berhasil menyebabkan kerusakan pada situs, dan kemudian memperbaikinya ketika pengguna memuat ulang halaman. Itu akan menjadi suatu prestasi.
Blacklight Shining

2
@FakeRainBrigand IMO, menyebabkan kerusakan nyata pada situs yang entah bagaimana diperbaiki saat memuat ulang jauh lebih mengesankan daripada hanya menyebabkan kerusakan pada situs.
Blacklight Shining

Jawaban:


27

Ayam!

Nilai: 46 - 1 (penjelasan) - 5 * 17 (suara) = -40

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

Ini hanya mengambil setiap elemen tanpa anak dan menggantinya dengan teks 'chicken'.

Contoh tangkapan layar:
lebih banyak ayam
, pertanyaan ini diperkuat

gambar


Ide yang luar biasa :-) Ini juga menarik untuk melihat hal-hal seperti "ayam yang dijawab" atau judul halaman, yang memiliki kata-kata non-ayam ... Mengapa?
Brigand

@FakeRainBrigand Hah? Judul halaman menjadi "ayam" bagi saya ...
Gagang Pintu

Versi yang lebih panjang tetapi lebih menyeluruh, sebagian berdasarkan pada entri saya:javascript:void($(':not(iframe,script,style)').contents().each(function(){if(this.nodeType==3)this.nodeValue=this.nodeValue.replace(/\w+/g,'chicken')}))
Ilmari Karonen

@ Doorknob, selamat, Anda mendapat skor 15, yang merupakan yang terendah (maaf saya butuh waktu lama untuk menerima satu). Namun, jika saya bisa mengulanginya lagi, saya akan memberikan suara senilai -15.
Brigand

1
Seharusnya HODOR!
SztupY

27

Inilah entri saya, yang akan saya panggil pemabuk :

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))

Pada 474 karakter, itu mungkin tidak akan memenangkan hadiah golf, tapi saya berharap untuk menebusnya dengan upvotes. :)

Berikut kode yang sama yang tidak dikaburkan:

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);

Apa yang dilakukan adalah secara acak mengubah teks pada halaman, bertukar karakter yang berdekatan, menghapus atau menggandakan karakter atau menggantinya dengan yang berdekatan dengan mereka pada keyboard. Efeknya agak halus pada awalnya, tetapi biarkan itu berjalan sebentar, dan konten halaman pasti akan membusuk menjadi berantakan mengetik mabuk:

Pulanglah, SO, kau mabuk!

Ps. Kode ini tidak spesifik untuk SO, jadi kode ini akan berfungsi pada situs web apa pun yang menggunakan jQuery. Cobalah di Wikipedia untuk hasil yang lucu. Gagasan ini didasarkan pada sesuatu yang saya tulis bertahun-tahun yang lalu sebagai interpretasi kreatif dari tantangan "99 botol bir": versi saya secara perlahan meningkatkan jumlah kesalahan ketik pada setiap ayat, sampai yang terakhir tidak dapat dikenali. Jika ada yang ingin melihatnya, inilah kode Perl asli .


6
Lebih lanjut letakkan Dyslexinator (sorru, saya mengetik saat ini sedang ruqning)
TheDoctor

16

Saya tidak tahu mengapa ini diturunkan, saya suka :)

Ini bukan yang terpendek, tapi saya pikir itu cantik:

133 karakter -1

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

Tidak Terkumpul:

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

Penjelasan: Saya harap ini diperhitungkan, skrip ini menanamkan situs alih-alih meledakkannya;) Ini hanya mengambil div acak atau span setiap 90ms dan menutupnya perlahan-lahan ..


+1 tetapi acak () tidak efisien untuk penghancuran penuh dan terkontrol, toh saya menyukainya :)
Daniele Brugnara

Hanya melemparkannya ke jendela URL, dan tidak ada yang terjadi ,,,?
WallyWest

Maaf Wally, tidak melihat komentar Anda. Anda harus menyimpannya sebagai bookmark.
Fels

12

Karena itu tidak ditentukan jika skor yang lebih tinggi atau lebih rendah ...

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

Basis: 38
Bonis:

  • + 9e72 Kerusakan permanen.

Skor akhir: 9000000000000000000000000000000000000000000000000000000000000000000000000000038

Btw, saya tidak mencobanya.


1
haha Omong-omong, jika Anda bertanya JavaScript: 9e72+38 === 9e72:-)
Brigand

3
Siapa yang meminta javascript? Gunakan jQuery .
Johannes Kuhn


4
Err ... haruskah saya memilih turun atau naik ...?
Teman Kim

1
Oh, saya mengerti ... itu mengklik tombol dengan kelas "pilih-turun" jika Anda menggunakannya. Ini diberi kode-tantangan, yang menyiratkan bahwa skor terendah menang.
Nzall

8

245 anak anjing saya.

Sebagian besar bukan yang lebih pendek, tapi saya suka ;-)

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: Penjelasan:

  • Saya menggunakan gambar animasi gif bagus yang ditawarkan dari pertanyaan,
  • Dengan bantuan CSS, saya menempatkannya di halaman penuh, dengan opacity 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%;
');

Kebanyakan bisa dibaca sendiri ;-)

-10 Tidak Ada JQuery

Alternatif:

Ada alternatifnya:

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%;');

Berdasarkan GIF yang tidak dimodifikasi, ditemukan di Wikimedia Commons: File: Animated fire oleh nevit.gif

Gambar: Gambar dari Wikipedia

Mencicipi:

masukkan deskripsi gambar di sini


Itu luar biasa!
Brigand

5

Ok, saya pikir ini harus memperhatikan kriteria:

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

Ganti halaman saat ini dengan "Meledak"

Nilai: 46
-1 Penjelasan
-10 Tidak jQuery

35


5

Yang ini menyenangkan, dan menyebabkan sedikit lag juga: D

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

Itu hanya menetapkan interval yang menggantikan semua string digit dengan angka acak dari 0 hingga 100. Dua kali per detik. Ini menciptakan banyak kesalahan, seperti yang Anda harapkan, dan saya bisa memperbaikinya untuk menghentikan semua 404 ketika URL gambar diubah, tapi saya pikir ini lebih menyenangkan dengan cara ini dan itu kode golf. : D

Skor:

  • 132 dasar
  • -1 penjelasan
  • -5 Suara positif
  • -10 tidak ada jQuery

Total skor: 116


Tidak berfungsi di firefox.
Johannes Kuhn

@JohannesKuhn Apa fungsinya di FF? Ini bekerja di Chrome
Doorknob

Menampilkan halaman kosong dengan nomor.
Johannes Kuhn

@JohannesKuhn saya pikir saya memperbaikinya; apakah itu function x(){document.body.innerHTML=document.body.innerHTML.replace(/\d+/g,function(){return Math.random()*100|0})}setInterval(x,500)bekerja untuk Anda sekarang?
Gagang Pintu

Ya, tetapi satu ;pada akhirnya akan melakukan hal yang sama.
Johannes Kuhn

4

165 karakter (164 poin)

-1 untuk penjelasan

Inilah usaha saya. Ini tidak terlalu pendek, tetapi menyenangkan.

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)});

Ini slide elemen individual dari halaman dalam arah acak. Saya secara khusus menyertakan rentang karena penyorotan sintaks (setiap warna memiliki rentang terpisah).

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);
});

Tentu saja dapat dipersingkat dengan menghapus beberapa tag, tetapi beri tahu saya jika ada cara untuk mempersingkatnya tanpa mengurangi kinerja.


4

181 151 karakter - 1 (penjelasan) - 10 (tanpa jQuery) = 140 poin

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);

Beberapa karakter lagi dapat disimpan dengan menghilangkan function(){dan menggunakan string sebagai gantinya. Perhatikan juga ekstraksi properti yang umum digunakan, misalnya, c='childNodesmemungkinkan kita melakukan z[c]alih - alih 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);

Saya kira saya bisa membuat lebih sedikit poin dengan menggunakan jQuery dan tidak melintasi properti, tapi oh well.

Tidak Terkumpul:

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);

Pada dasarnya ini menemukan elemen DOM terbaru pada halaman dan menghapusnya. Lalu terus lakukan itu untuk setiap 50 milidetik, yang menurut saya merupakan kecepatan rata-rata yang bagus untuk melihat halaman yang terkoyak dari bawah ke atas. Itu terapi, aku bersumpah.

Penafian: Saya telah membuat ini beberapa waktu yang lalu dan memutuskan untuk membagikannya, karena sepertinya cocok di sini. Sumbernya ada di repositori GitHub saya .


Ini bagus! Saya mengeditnya untuk memasukkan versi lebih golf yang menyimpan beberapa karakter. Saya harap kamu tidak keberatan. Secara fungsional identik.
Brigand

@FakeRainBrigand Tidak sama sekali, terima kasih! Bahkan, Anda membantu saya mempelajari beberapa trik keren baru, yang merupakan niat awal saya ketika menulisnya. Terima kasih lagi!
Alpha

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;

Itu mendapat setiap tanggapan terhadap pertanyaan dalam bentuk <code>javascript:(stuff)</code>yang tidak mengubah lokasi, dan menjalankan semuanya.


Hmm ... Saya bisa melihat banyak spasi yang tampaknya bisa dilepas. Mungkin Anda harus menghapusnya.
John Dvorak

3
Saya cukup yakin ini gagal aturan: "tidak membuat tag skrip yang menarik explosionPage.js atau serupa". Juga, ini tidak berfungsi pada setiap halaman SO, hanya yang ini. Juga, itu benar-benar merusak pertanyaan yang bertanya tentang XSS, jadi Anda harus menambahkan 9e72 ke skor Anda.
John Dvorak

2

Saya suka efek ini. Ini pada dasarnya mengaktifkan efek slide untuk setiap div di situs setiap 1 milidetik.

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

Skor

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

Bagus, tetapi hanya toogle akan bekerja juga: javascript:setInterval(function(){$('div').toggle(88)},1)
Fels
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.