오마이뉴스(http://www.ohmynews.com/)에서 기사들은 링크가 자바스크립트로 되어 있어 새 탭에서 기사를 열 수 없다.
그래서 "새 탭에 링크를 열기"나 "Shift + Click"을 쓸 수 있게 간단한 스크립트를 만들어 보았다.
다음 세 방법 중 자신이 바라는 하나를 쓰면 된다.
방법 1. 북마크(즐겨찾기)를 쓰는 방법 - Bookmarklet
파이어폭스(Firefox, http://www.mozilla.or.kr/)나 인터넷 익스플로러(IE)에서 쓸 수 있다.
다음 링크를 오른쪽 마우스 버튼을 눌러 "링크를 북마크에 추가" (IE는 "즐겨찾기에 추가") 메뉴를 선택한다.
다음 링크를 오른쪽 마우스 버튼을 눌러 "링크를 북마크에 추가" (IE는 "즐겨찾기에 추가") 메뉴를 선택한다.
오마이뉴스 글을 읽어오면 링크를 클릭하기 전에 북마크에서 한번은 꼭 실행해 줘야 한다.
방법 2. 파이어폭스에서 그리스몽키를 쓰는 방법
방법1은 매번 오마이뉴스에서 링크를 클릭하기 전에 이 북마크를 실행 해줘야하므로 귀찮다.
그래서 파이어폭스(Firefox)에서는 그리스몽키(GreaseMonkey)라는 부가기능을 설치하면 저절로 문서의 주소에 맞는 자바스크립트 명령들을 실행한다.
① 먼저 그리스몽키를 설치하고 파이어폭스를 다시 실행한다.
http://www.greasespot.net/ 에서 "다운로드(Download)" 를 누르면 "설치하기" 단추 그림을 눌러 설치한다.
또는 파이어팍스의 "도구" 메뉴 > "부가기능" > "유용한 확장기능 찾기" 에서도 찾을 수 있다.
② 스크립트 더하기또는 파이어팍스의 "도구" 메뉴 > "부가기능" > "유용한 확장기능 찾기" 에서도 찾을 수 있다.
방법 2. 처럼 위의 스크립트를 자동으로 실행하기 위해 IE 의 부가 기능인 IE7Pro 를 쓸수 있다.
① 먼저 IE7Pro를 설치하고 IE 를 다시 실행한다.
① 먼저 IE7Pro를 설치하고 IE 를 다시 실행한다.
http://www.ie7pro.com/?language=kr 에서 다운받아 설치한다.
② 스크립트 저장하기위의 ohmynewsModifyLinks.user.js 를 ohmynewsModifyLinks.ieuser.js 로 이름을 바꿔 IE7Pro 의 스크립트 폴더( C:\Program Files\IEPro\userscripts ) 에 저장한다.
③ IE7Pro 의 설정IE7Pro 의 설정에서 "사용자 스크립트" 항목에 있는 "스크립트 새로고침" 단추를 누르면 ohmynewsModifyLinks 가 더해진다. 그것을 채크해 주면 된다.
소스 둘러보기
다음은 위 방법들에서 사용된 자바스크립트 소스이다.
<a href="javascript:goView(......)">로 되어있는 글 주소를 문서 소스 안에서 찾아
<a href="http://......)"> 처럼 바꾼다.
// ==UserScript==다른 좋은 방법은 없을까?
// @name ohmynewsModifyLinks
// @namespace http://idodream.tistory.com/
// @include http://www.ohmynews.com/*
// @include http://ohmynews.com/*
// ==/UserScript==
(function(){
var searchHrefPattern = "javascript:goView(";
var paramRe = /'([^']*)'/g;
var paramCount = 5;
var hrefPattern ="{0}?CNTN_CD={1}&PAGE_CD={2}&BLCK_NO={3}&CMPT_CD={4}&NEW_GB=";
for(var i=0;i<document.links.length;i++)
{
var cLink = document.links[i];
if(cLink.href && cLink.href.indexOf(searchHrefPattern)==0)
{
var paramMatchs=cLink.href.match(paramRe);
var cUrl=hrefPattern;
for(var p=0;p<paramCount;p++)
cUrl=cUrl.replace(new RegExp("\\{"+p+"\\}",'g'),paramMatchs[p].slice(1,-1));
cLink.href=cUrl;
}
}
})()
^____^