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.