인터넷정보

IEToy를 이용해서 링크 던지기

알 수 없는 사용자 2007. 10. 17. 11:51
MyIE에 Super Drag&Drop이라는 기능이 있습니다. 웹마에서는 아마 링크던지기?

링크를 끌어다가 아무렇게나 던지면 새 탭으로 열어주는 기능인데요, 제가 굉장히 좋아하는 기능입니다.



아래의 소스를 IEToy의 data 디렉토리에 있는 footer 파일에 넣어주시면 그냥 IE에서도 링크를 끌어다 던질때 새창으로 여는게 가능합니다.



A 태그에 달린 링크는 그냥 잡아서 던지면 새창으로 열리고,

http:// 로 시작하는 URL이 포함된 (링크 안걸린) 일반텍스트는 해당 텍스트를 선택한 후 던지면 http:// 의 유무에 의해서 URL로 인식하고 새창으로 열리거나(IEToy 문맥메뉴의 "선택 주소 열기"와 비슷하겠죠) 구글에서 검색되게 했습니다. 필요한 부분은 고쳐쓰세요. :)



ps. 끌기 시작한 좌표와 끌고 난 후의 좌표의 차이가 g_nDistance보다 클 경우에만 작동합니다. 방향은 상관없습니다.


<script>
var g_nPosX;
var g_nPosY;
var g_nDistance = 10;


function miniwiniInitSuperDrag()
{
        try
        {
                g_nPosX = event.x;
                g_nPosY = event.y;
        }
        catch(e){}
}


function miniwiniCaptureSuperDrag()
{
        try
        {
                var nPosX = event.x;
                var nPosY = event.y;

                if (Math.abs(nPosX-g_nPosX)<g_nDistance && Math.abs(nPosY-g_nPosY)<g_nDistance)
                        return;

                var el = event.srcElement;
                var sTag = el.tagName;
                if (sTag=="A")
                {
                        document.location.href='javascript:';
                        window.open(el.href,"_blank","");
                }
                else
                {
                        var sText = document.selection.createRange().text;

                        if (sText)
                        {
                                var sCompare = sText.toLowerCase();
                                if (sCompare.indexOf("http://")>-1 || sCompare.indexOf("https://")>-1)
                                {
                                        document.location.href='javascript:';
                                        window.open(sText,"_blank","");
                                }
                                else
                                {
                                        document.location.href='javascript:';
                                        window.open("http://www.google.co.kr/search?q="+sText,"_blank","");
                                }
                        }
                }
        }
        catch(e){}
}

try
{
        document.body.ondragstart = miniwiniInitSuperDrag;
        document.body.ondragend = miniwiniCaptureSuperDrag;
}
catch(e){}
</script>
반응형