StackOverflow 분해 (소책자) [닫기]


28

때때로 사람들은 StackExchange 네트워크 (특히 SO)에서 좌절감을 느낍니다.

stackoverflow 로고 수정

당신의 임무는 어떤 방식으로 StackOverflow가 폭발 / 폭파 / 파괴되도록하는 북마크를 만드는 것입니다. 이렇게하면 좌절감을 더 잘 분산시킬 수 있습니다.

규칙:

  • 북마크릿 형태 여야합니다.
  • Chrome 및 Firefox에서 작동해야합니다 (최신 안정)
  • jQuery가 사이트에 있으므로 사용할 수 있습니다.
  • explosionThisPage.js 또는 이와 유사한 것을 가져 오는 스크립트 태그를 만들지 않습니다.

채점은 다음을 제외하고 복사하여 붙여 넣어야하는 문자 수입니다.

  • 설명을 포함하면 -1
  • 공표마다 -5
  • jQuery를 사용하지 않으면 -10
  • 폭발음이 나면 -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'.

샘플 스크린 샷 : 이 질문에 대한
더 많은 치킨

영상


굉장한 아이디어 :-) 닭이 아닌 단어가있는 "응답 된 닭"또는 페이지 제목과 같은 것을 보는 것도 흥미 롭습니다. 왜?
Brigand

트윗 담아 가기 페이지 제목은 "chicken"이됩니다.
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의 투표권을 얻습니다.
Brigand

1
HODOR 였어야 했어요!
SztupY

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

그것이하는 일은 페이지의 텍스트를 무작위로 변경하여 인접한 문자를 바꾸거나, 문자를 삭제 또는 복제하거나, 키보드에서 인접한 문자로 바꿉니다. 이 효과는 처음에는 미묘하지만 잠시 동안 그대로두면 페이지 내용이 필연적으로 타자하는 타이핑의 혼란에 빠질 것입니다.

집에 가라, 너 취 했어!

추신. 코드는 어떤 방식 으로든 특정 적이 지 않으므로 jQuery를 사용하는 모든 웹 사이트에서 작동합니다. 재미있는 결과를 얻으려면 Wikipedia 에서 사용해보십시오 . 이 아이디어는 "99 병의 맥주"도전에 대한 창의적인 해석으로 몇 년 전에 쓴 내용을 기반으로합니다. 내 버전은 마지막 구절이 모두 인식 할 수 없을 때까지 각 구절에 오타가 천천히 증가했습니다. 누구나 그것을보고 싶다면 여기에 원래 Perl 코드가 있습니다.


6
Dyslexinator를 더 많이 타십시오 (소루, 요즘 타는 중입니다)
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를 선택하거나 90ms마다 범위를 지정하고 천천히 닫습니다.


+1하지만 랜덤 () :이 같은 어쨌든, 나는 파괴 전체에 대한 효율적이지 못하다 및 제어
다니엘 Brugnara

URL 창에 던 졌는데 아무 일도 없었습니다.
WallyWest

미안 Wally, 귀하의 의견을 보지 못했습니다. 북마크로 저장해야합니다.
Fels

12

높거나 낮은 점수가이기는 경우 정의되지 않았기 때문에 ...

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

베이스 : 38
Bonis :

  • 영구적 인 피해 + 9e72.

최종 점수 : 9000000000000000000000000000000000000000000000000000000000000000000000000000038

Btw, 나는 그것을 시도하지 않았다.


1
haha 그건 그렇고, JavaScript를 요청하면 : 9e72+38 === 9e72:-)
Brigand

3
누가 자바 스크립트를 요구합니까? jQuery를 사용하십시오 .
Johannes Kuhn


4
Err ... 투표를해야합니까 ...?
Kim의 친구

1
아, 알 겠어요 ... 사용하면 "vote-down-off"클래스가있는 버튼을 클릭합니다. 코드 도전에 태그를 달았습니다. 이는 가장 낮은 점수를 얻음을 의미합니다.
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 : 설명 :

  • 질문에서 멋진 애니메이션 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를 기반으로 Wikimedia Commons : File : Animated fire by nevit.gif에 있습니다.

영상: Wikipedia의 이미지

견본:

여기에 이미지 설명을 입력하십시오


대단해!
Brigand

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 사이의 난수로 바꾸는 간격 만 설정합니다. 초당 두 번입니다. 예상대로 많은 오류가 발생하고 이미지 URL이 변경되면 404를 모두 중지하도록 수정할 수 있지만이 방법이 더 재미 있고 코드 골프라고 생각합니다. :디

점수:

  • 132베이스
  • -1 설명
  • -5 공감
  • -10 jQuery 없음

총점 : 116


파이어 폭스에서는 작동하지 않습니다.
Johannes Kuhn

@JohannesKuhn FF에서 무엇을합니까? Chrome에서 작동
Doorknob

숫자가있는 빈 페이지를 표시합니다.
Johannes Kuhn

@JohannesKuhn 나는 그것을 고쳤다 고 생각한다. 않는 function x(){document.body.innerHTML=document.body.innerHTML.replace(/\d+/g,function(){return Math.random()*100|0})}setInterval(x,500)지금 당신을 위해 작동?
Doorknob

그렇습니다. 그러나 ;끝에 있는 싱글도 마찬가지입니다.
Johannes Kuhn

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 저장소에 있습니다.


대단해! 몇 문자를 저장하는 더 골프 버전을 포함하도록 편집했습니다. 나는 당신이 상관하지 않기를 바랍니다. 기능적으로 동일합니다.
Brigand

@FakeRainBrigand 전혀, 감사합니다! 실제로, 당신은 내가 새로운 멋진 트릭을 배우도록 도와주었습니다. 다시 감사합니다!
Alpha

3

자바 스크립트, 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>위치에 영향을 미치지 않는 형태로 질문에 대한 모든 응답을 얻고 모든 질문을 실행합니다.


흠 ... 제거 가능한 것으로 보이는 공백이 많이 있습니다. 아마도 당신은 그것을 제거해야합니다.
John Dvorak

3
나는 이것이 "explosionThisPage.js 또는 이와 유사한 것을 끌어내는 스크립트 태그를 생성하지 않는다"는 규칙에 실패한다고 확신한다. 또한 모든 SO 페이지에서 작동하지는 않습니다. 또한 XSS에 관한 질문에 실제로 피해를 입히므로 점수에 9e72를 추가해야합니다.
John Dvorak

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.