StackOverflow Explodeの作成(ブックマークレット)[終了]


28

StackExchangeネットワーク(特にSO)で人々がイライラすることがあります。

変更された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ポイント、それは実際にサイトに害を及ぼすことに成功するならば、それユーザーリロードページを修復します。それは非常に偉業です。
ブラックライトシャイニング14

2
@FakeRainBrigand IMOは、リロード時に何らかの形で修復されたサイトに実際の害を引き起こすことは、単にサイトに害を与えることよりもはるかに印象的です。
ブラックライトシャイニング14

回答:


27

チキン!

スコア:46-1(説明)-5 * 17(投票)= -40

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

単に子を持たないすべての要素を取り、それをテキストで置き換えます'chicken'

サンプルのスクリーンショット:この質問
がニワトリに
なりました

image


素晴らしいアイデア:-)また、「回答済みの鶏」やページタイトルなど、鶏以外の単語が含まれているものを見るのも面白いです...なぜですか?
ブリガンド

@FakeRainBrigandえ?ページタイトルが私にとっては「チキン」になります...
Doorknob

部分的に私のエントリに基づいて、より長いが、より完全なバージョン:javascript:void($(':not(iframe,script,style)').contents().each(function(){if(this.nodeType==3)this.nodeValue=this.nodeValue.replace(/\w+/g,'chicken')}))
Ilmari Karonen

@Doorknob、おめでとうございます、あなたは15のスコアを持っていましたが、これは最低でした(1つを受け入れるのに私は非常に時間がかかりました)。ただし、もう一度やり直すことができれば、-15に相当する票を投じることになります。
ブリガンド

1
HODORだったはずです!
SztupY 14

27

これが私のエントリです。これをdrunkenatorと呼びます:

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を使用するすべてのWebサイトで機能します。面白い結果を得るには、ウィキペディアで試してください。このアイデアは、「99本のビール」チャレンジの創造的な解釈として何年も前に書いたものに基づいています。誰かがそれを見たいと思うなら、オリジナルのPerlコードはここにあります


6
ディスレクシネーターをさらにスライドさせます(sorru、私はruqningで入力しています)
TheDoctor 14

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が、random()は完全な制御された破壊には効率的ではありません、とにかく私はそれが好きです:)
ダニエル・ブルグナーラ

URLウィンドウにそれを投げただけで、何も起こりませんでした、、、?
WallyWest

申し訳ありませんが、ウォーリー、あなたのコメントを見ませんでした。ブックマークとして保存する必要があります。
フェルズ14

12

高いスコアまたは低いスコアが勝った場合、それは定義されていなかったため...

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

ベース:38
ボニス:

  • + 9e72永久的なダメージ。

最終スコア:9000000000000000000000000000000000000000000000000000000000000000000000000000038

ところで、私はそれを試しませんでした。


1
ハハところで、JavaScriptを尋ねると:9e72+38 === 9e72:-)
ブリガンド

3
誰がjavascriptを要求しますか?jQueryを使用します。
ヨハネ


4
エラー...私は賛成または反対に投票すべきですか...?
キムの友人14

1
ああ、わかりました...それを使用すると、クラス「vote-down-off」のボタンをクリックします。コードチャレンジタグが付いているため、最低スコアが勝ちます。
Nzall

8

私のpupose 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:説明:

  • 質問から提供された素敵なアニメーションGIF画像を使用します。
  • 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に基づく:File:Animated fire by 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の乱数に置き換える間隔を設定するだけです。1秒間に2回。ご想像のとおり、大量のエラーが発生します。画像URLが変更されたときにすべての404を停止するように修正できましたが、この方法の方が楽しいし、コードゴルフです。:D

スコア:

  • 132ベース
  • -1説明
  • -5賛成票
  • -10 jQueryなし

合計スコア:116


Firefoxでは機能しません。
ヨハネ

@JohannesKuhn FFでは何をしますか?Chromeで動作します
ドアノブ

番号付きの空白ページを表示します。
ヨハネ

@JohannesKuhn私はそれを修正したと思う; function x(){document.body.innerHTML=document.body.innerHTML.replace(/\d+/g,function(){return Math.random()*100|0})}setInterval(x,500)今あなたのために働きますか?
ドアノブ

はい。ただし;、最後に1人でも同じことができます。
ヨハネ

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

181151文字-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
これは「explosionThisPage.jsなどをプルするスクリプトタグを作成しない」というルールに失敗すると確信しています。また、すべてのSOページで機能するわけではなく、これだけです。また、XSSについて尋ねる質問に実際のダメージを与えるため、スコアに9e72を追加する必要があります。
ジョンドボラック

2

私はこの効果が好きです。基本的に、サイト上のすべてのdivのスライド効果を1ミリ秒ごとに切り替えます。

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

スコア

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

いいですが、あまりにも機能しすぎます: javascript:setInterval(function(){$('div').toggle(88)},1)
Fels
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.