Skip to content

Instantly share code, notes, and snippets.

@alogblog
Last active December 17, 2015 03:39
Show Gist options
  • Select an option

  • Save alogblog/5545091 to your computer and use it in GitHub Desktop.

Select an option

Save alogblog/5545091 to your computer and use it in GitHub Desktop.
Naver News Comments Userscript
// 1.
var $iframe = $("#ifrMemo").contents();
$(".comment_list ul", $iframe).on("DOMNodeInserted", function(e) {
console.log('inserted...');
});
// 2.
$( "#sliderTime" ).slider({
orientation: "vertical",
range: "min",
min: 20,
max: 100,
value: config.newsScrollTime/100,
slide: function( event, ui ) {
$tooltopHandleTime.text( Math.round(ui.value/10) + '초' );
},
change: function( event, ui ) {
config.newsScrollTime = ui.value*100; //milliseconds.
GM_setValue('com.alogblog.naver.news.config', JSON.stringify(config));
// 바뀐 config.newsScrollTime에 맞게 새로 시작.
startPageScroll();
}
}).find(".ui-slider-handle").append($tooltopHandleTime).hover(function() {
$tooltopHandleTime.show()
}, function() {
$tooltopHandleTime.hide()
});
//3. Click, Double Click on a element.
var clickCheckTimer;
var clicks = 0;
var DOUBLE_CLICK_DELAY = 400;
$('.alogblog-sidebar').click( function() {
stopScroll=true;
clearInterval( pageScrollIntervalId );
clicks++;
if ( clicks == 1 ) {
clickCheckTimer = setTimeout( function() {
$('body').animate( { scrollTop:$('body').scrollTop()+winH-100 }, 500 );
clicks = 0;
}, DOUBLE_CLICK_DELAY);
} else {
// double click.
clearTimeout(clickCheckTimer);
$('body').animate( { scrollTop:0 }, 1000 );
clicks = 0;
}
} ).dblclick( function(e) { e.preventDefault(); } );
// 4. CustomEvent
evt = document.createEvent("CustomEvent");
var evtDetail = {aaa:1,bbb:2};
evt.initCustomEvent( "AlogblogEventType", false, true, evtDetail );
window.dispatchEvent(evt);
window.addEventListener("AlogblogEventType", function(evt) {
evt.detail['aaa'] == 1;
});
//5.
var tmpConfig = JSON.parse( GM_getValue('com.alogblog.naver.news.config', '{}') );
//6.
location.assign( 'javascript:window.resizeAdjustIframe("ifrMemo");void(0)' );
//7.
evt = document.createEvent("MouseEvents");
evt.initEvent("click", true, true);
evt.eventName = "click";
$("div.more_wrap a.more").get(0).dispatchEvent(evt);
//8.
fileScript = document.createElement('script');
fileScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js';
doc = document.head || document.documentElement;
doc.appendChild(fileScript);
fileScript.onload = function() {
var inlineScript;
this.parentNode.removeChild(this);
// jQuery가 먼저 불려진 후에, 실제 함수 코드가 불려져야한다.
inlineScript = document.createElement('script');
inlineScript.textContent = actualCode;
doc.appendChild(inlineScript);
inlineScript.parentNode.removeChild(inlineScript);
}
actualCode = '(' + function($) {
// function codes.
} + ')();';
//
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment