HF Scripts - Thread Previewer

Allows you to preview threads before opening it. - Updated by Dr Steve Brule

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name		HF Scripts - Thread Previewer
// @namespace 		xerotic/previewthread
// @description 	Allows you to preview threads before opening it. - Updated by Dr Steve Brule
// @include  		*hackforums.net/forumdisplay.php?fid=*
// @include  		*hackforums.net/search.php?action=results&sid=*
// @version  		1.1.0
// ==/UserScript==

function getPage(e) {
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
    }
    xmlhttp.open("GET", e, false);
    xmlhttp.send();
    var t = document.implementation.createHTMLDocument("HF Thread");
    t.documentElement.innerHTML = xmlhttp.responseText;
    return t
}

function loadPreview(e) {
    var t = getPage(tidElements[e].href);
    var n = document.createElement("div");
    if (!t.body.getElementsByClassName("post_body")[0]) {
        n.innerHTML = t.body.querySelectorAll('div[id^="pid"]')[0].innerHTML
    } else {
        n.innerHTML = t.body.getElementsByClassName("post_body")[0].innerHTML
    }
    n.style.border = "2px solid #0F5999";
    n.style.margin = "5px";
    n.style.padding = "6px";
    n.style.boxShadow = "0px 0px 5px 4px #1E1E1E";
    tidParents[e].parentNode.insertBefore(n, tidParents[e].nextSibling)
}
var tidElements = document.body.querySelectorAll('a[id^="tid"]');
tidParents = new Array;
for (var i = 0; i < tidElements.length; i++) {
    tidParents[i] = tidElements[i].parentNode;
    var newSpan = document.createElement("span");
    newSpan.innerHTML = "▼";
    newSpan.style.color = "#0F5999";
    newSpan.style.fontSize = "16px";
    newSpan.style.marginLeft = "7px";
    newSpan.style.cursor = "pointer";
    newSpan.id = i;
    tidParents[i].appendChild(newSpan);
    tidParents[i].addEventListener("click", function(e) {
        ele = e.srcElement;
        loadPreview(e.target.id);
        ele.parentNode.removeChild(ele)
    }, false)
}