<script type='text/javascript'>
$(document).ready(function(){
$('div.post-body a').each(function() {
if ($(this).attr('href')) {
$(this).attr('target', '_blank');
}
});
});
</script>
Showing posts with label javascript. Show all posts
Showing posts with label javascript. Show all posts
링크 태그 target을 '_blank'로 자동으로 바꾸기 edit
블로거에 적용하고자 셀렉터를 $('div.post-body a')로 주었다.
blockquote cite 속성에 넣은 링크를 자바스크립트로 자동으로 링크걸기 edit
위 사이트에서 소개한 방법은 망할 윈도우즈 익스플로러에서 스타일시트가 적용되지 않기때문에 jQuery를 이용하여 아래와 같이 수정하였고 <head>...</head>사이에 넣어주면 된다.
<script type='text/javascript'>
$(document).ready(function(){
$('blockquote').each(function() {
var citelink = $(this).attr('cite');
if (citelink != '' && citelink != null) {
var cite = document.createElement('cite');
var a = document.createElement('a');
$(a).attr({'href': citelink, 'title': citelink});
$(a).append(citelink);
$(cite).append(a);
$(this).prepend(cite);
}
});
});
</script>
스타일시트로 cite를 block으로 만들어준다.
blockquote cite { display: block; margin-bottom: 0.5em; font-style: italic;}
이제 아래처럼 cite속성에 링크만 설정해줘도
<blockquote cite="http://support.google.com/blogger/bin/answer.py?hl=en&answer=47270#posts">dateHeader: The date of this post, <b>only present if this is the first post in the list that was posted on this day.</b></blockquote>
아래처럼 링크가 걸린다.
dateHeader: The date of this post, only present if this is the first post in the list that was posted on this day.
블로거에서 위키 마크업을 자바스크립트로 사용 edit
creole 말고도 수많은 자바스크립트 마크업들을 테스트해보았지만 모두 블로거에서 사용하기 적절하지 않았다.
class이름으로 element를 얻기위한
위 함수 대신 jquery같은걸 써도됨.
아래 자바스크립트 소스들은 페이지 맨 하단에 삽입되어야 함.(페이지가 모두 로드 된 뒤 렌더링)
모든 포스트에 자동으로 위키마크업을 사용하려면 위 주석처리된 코드처럼
- 일반 HTML태그와 혼용 불가
<nowiki></nowiki>태그의 미지원 혹은 불완전한 지원<pre></pre>태그안에서 줄바꿈을 인식하여<p></p>로 감싼뒤 태그를 그대로 이스케이프하여 태그가 그대로 출력됨.
class이름으로 element를 얻기위한 getElementsByClass함수
위 함수 대신 jquery같은걸 써도됨.
아래 자바스크립트 소스들은 페이지 맨 하단에 삽입되어야 함.(페이지가 모두 로드 된 뒤 렌더링)
Creole
var options = {};
options.interwiki = {};
//var element = getElementsByClass('post-body entry-content');
var element = getElementsByClass('wiki-content');
for (var k = 0; k < element.length; k++) {
var tmp = element[k].innerHTML;
element[k].innerHTML = '';
var c = new Parse.Simple.Creole(options);
c.parse(element[k], tmp, options);
}
모든 포스트에 자동으로 위키마크업을 사용하려면 위 주석처리된 코드처럼
post-body entry-content클래스를 지정해주되지만 일반 HTML태그를 지원해주지 않기때문에 wiki-content클래스를 지정하여 위키마크업을 사용할 부분에만 사용한다.wiky
InstaView by Pilaf from wikipedia
Javascript document.location edit
http://fuckthis.com/shitdocument.location->http://fuckthis.com/shitdocument.location.hostname->fuckthis.comdocument.location.pathname->/shit
Javascript getElementsByClass edit
http://jsnu.cafe24.com/lagooniweb/-web-technology/js-javascript/
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
Tumblr auto scroll edit
<script type="text/javascript" src"http://static.tumblr.com/q0etgkr/mFbkoqlkr/tumblrautopager.js"></script>
Decompressed source:
var tumblrAutoPager = {
url: "http://proto.jp/",
ver: "0.1.7",
rF: true,
gP: {},
pp: null,
ppId: "",
LN: location.hostname,
init: function ()
{
if ($("autopagerize_icon") || navigator.userAgent.indexOf('iPhone') != -1) return;
var tAP = tumblrAutoPager;
var p = 1;
var lh = location.href;
var lhp = lh.lastIndexOf("/page/");
var lht = lh.lastIndexOf("/tagged/");
if (lhp != -1)
{
p = parseInt(lh.slice(lhp + 6));
tAP.LN = lh.slice(7, lhp);
}
else if (lht != -1)
{
tAP.LN = lh.slice(7);
if (tAP.LN.slice(tAP.LN.length - 1) == "/") tAP.LN = tAP.LN.slice(0, tAP.LN.length - 1);
}
else if ("http://" + tAP.LN + "/" != lh)
{
return;
};
var gPFncs = [];
gPFncs[0] = function (aE)
{
var r = [];
for (var i = 0, l = aE.length; i < l; i++)
{
if (aE[i].className == "autopagerize_page_element")
{
r = gCE(aE[i]);
break;
}
}
return r;
};
gPFncs[1] = function (aE)
{
var r = [];
for (var i = 0, l = aE.length; i < l; i++)
{
var arr = aE[i].className ? aE[i].className.split(" ") : null;
if (arr)
{
for (var j = 0; j < arr.length; j++)
{
arr[j] == "post" ? r.push(aE[i]) : null;
}
}
}
return r;
};
gPFncs[2] = function (aE)
{
var r = [];
var tmpId = tAP.ppId ? [tAP.ppId] : ["posts", "main", "container", "content", "apDiv2", "wrapper", "projects"];
for (var i = 0, l = aE.length; i < l; i++)
{
for (var j = 0; j < tmpId.length; j++)
{
if (aE[i].id == tmpId[j])
{
r = gCE(aE[i]);
tAP.ppId = aE[i].id;
break;
}
}
}
return r;
};
for (var i = 0; i < gPFncs.length; i++)
{
var getElems = gPFncs[i](document.body.getElementsByTagName('*'));
if (getElems.length)
{
tAP.gP = gPFncs[i];
tAP.pp = getElems[0].parentNode;
break;
}
}
function gCE(pElem)
{
var r = [];
for (var i = 0, l = pElem.childNodes.length; i < l; i++)
{
r.push(pElem.childNodes.item(i))
}
return r;
}
if (!tAP.pp)
{
return;
}
sendRequest.README = {
license: 'Public Domain',
url: 'http://jsgt.org/lib/ajax/ref.htm',
version: 0.516,
author: 'Toshiro Takahashi'
};
function chkAjaBrowser()
{
var A, B = navigator.userAgent;
this.bw = {
safari: ((A = B.split('AppleWebKit/')[1]) ? A.split('(')[0].split('.')[0] : 0) >= 124,
konqueror: ((A = B.split('Konqueror/')[1]) ? A.split(';')[0] : 0) >= 3.3,
mozes: ((A = B.split('Gecko/')[1]) ? A.split(' ')[0] : 0) >= 20011128,
opera: ( !! window.opera) && ((typeof XMLHttpRequest) == 'function'),
msie: ( !! window.ActiveXObject) ? ( !! createHttpRequest()) : false
};
return (this.bw.safari || this.bw.konqueror || this.bw.mozes || this.bw.opera || this.bw.msie)
}
function createHttpRequest()
{
if (window.XMLHttpRequest)
{
return new XMLHttpRequest()
}
else
{
if (window.ActiveXObject)
{
try
{
return new ActiveXObject('Msxml2.XMLHTTP')
}
catch (B)
{
try
{
return new ActiveXObject('Microsoft.XMLHTTP')
}
catch (A)
{
return null
}
}
}
else
{
return null
}
}
};
function sendRequest(E, R, C, D, F, G, S, A)
{
var Q = C.toUpperCase() == 'GET',
H = createHttpRequest();
if (H == null)
{
return null
}
if ((G) ? G : false)
{
D += ((D.indexOf('?') == -1) ? '?' : '&') + 't=' + (new Date()).getTime()
}
var P = new chkAjaBrowser(),
L = P.bw.opera,
I = P.bw.safari,
N = P.bw.konqueror,
M = P.bw.mozes;
if (typeof E == 'object')
{
var J = E.onload;
var O = E.onbeforsetheader
}
else
{
var J = E;
var O = null
}
if (L || I || M)
{
H.onload = function ()
{
J(H);
H.abort()
}
}
else
{
H.onreadystatechange = function ()
{
if (H.readyState == 4)
{
J(H);
H.abort()
}
}
}
R = K(R, D);
if (Q)
{
D += ((D.indexOf('?') == -1) ? '?' : (R == '') ? '' : '&') + R
}
H.open(C, D, F, S, A);
if ( !! O)
{
O(H)
}
B(H);
H.send(R);
function B(T)
{
if (!L || typeof T.setRequestHeader == 'function')
{
T.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
}
return T
}
function K(X, V)
{
var Z = [];
if (typeof X == 'object')
{
for (var W in X)
{
Y(W, X[W])
}
}
else
{
if (typeof X == 'string')
{
if (X == '')
{
return ''
}
if (X.charAt(0) == '&')
{
X = X.substring(1, X.length)
}
var T = X.split('&');
for (var W = 0; W < T.length; W++)
{
var U = T[W].split('=');
Y(U[0], U[1])
}
}
}
function Y(b, a)
{
Z.push(encodeURIComponent(b) + '=' + encodeURIComponent(a))
}
return Z.join('&')
}
return H
}
function addNextPage(oj)
{
if (oj.status == 404)
{
tAP.remainFlg = false;
return;
}
var d = document.createElement("div");
d.innerHTML = oj.responseText;
var posts = tAP.gP(d.getElementsByTagName("*"));
if (posts.length < 2)
{
tAP.rF = false;
return;
}
var hr = document.createElement("hr");
hr.className = "tumblrAutoPager_page_separator";
tAP.pp.appendChild(hr);
d = document.createElement("div");
d.className = "tumblrAutoPager_page_info";
d.innerHTML = "<p style='float:left'><a href=http://" + tAP.LN + "/page/" + p + ">Page " + p + "</a></p>
" + "<br style='clear:both' />";
tAP.pp.appendChild(d);
for (var i = 0; i < posts.length; i++)
{
tAP.pp.appendChild(posts[i]);
}
var footer = $("footer");
footer ? footer.parentNode.appendChild(footer) : null;
tAP.rF = true;
}
watch_scroll();
function watch_scroll()
{
var d = document.compatMode == "BackCompat" ? document.body : document.documentElement;
var r = d.scrollHeight - d.clientHeight - (d.scrollTop || document.body.scrollTop);
if (r < d.clientHeight * 2 && tAP.rF)
{
tAP.rF = false;
p++;
sendRequest(addNextPage, "", "GET", "http://" + tAP.LN + "/page/" + p, true);
}
setTimeout(arguments.callee, 200);
};
function $(id)
{
return document.getElementById(id)
};
},
switchAutoPage: function ()
{
this.rF = !this.rF;
var aE = document.getElementsByTagName('*');
for (var i = 0, l = aE.length; i < l; i++)
{
if (aE[i].className == "tAP_switch")
{
aE[i].firstChild.nodeValue = this.rF ? "AutoPage[OFF]" : "AutoPage[ON]";
}
}
}
};
window.addEventListener ? window.addEventListener('load', tumblrAutoPager.init, false) : window.attachEvent ? window.attachEvent("onload", tumblrAutoPager.init) : window.onload = tumblrAutoPager.init;