2010-03-30 3 views
1

북마크 표시, 다음 텍스트가 아마 JQuery와 도움을 줄 수 가 포커스 사업부는 내가 사업부에서 텍스트를 선택합니다 찾고 있어요

을 선택 사업부를 제외하고 본문에 모든 HTML 부분을 제거 북마크를 클릭 예를 들면 다음과 같습니다 :

javascript:var%20s=document.createElement('script');s.setAttribute('src',%20'http://jquery.com/src/jquery-latest.js');document.body.appendChild(s);s.onload=function(){/*the code*/};void(s); 
+0

내가 게시 한 코드가 질문과 관련이 있는지 모르겠다. 단지 jQuery 라이브러리가 포함되어 있습니까? –

답변

2

선택한 텍스트가 페이지에서 정확히 한 번 나타나면 제대로 작동합니다. 여러 번 나타나면 선택한 텍스트가 포함 된 페이지의 마지막 div가 표시되어야합니다. 당신은 또한 CSS를 stylings가 사라되도록하려면 내가 유를 마우스 오른쪽 통해 UR을 이해하면

더 많은 읽을 수

function sel() { 
    if (window.getSelection) { 
     return window.getSelection().toString(); 
    } else if (document.getSelection) { 
     return document.getSelection(); 
    } else if (document.selection) { 
     return document.selection.createRange().text; 
    } 
} 
var s = document.createElement('script'); 
s.setAttribute('src', 'http://jquery.com/src/jquery-latest.js'); 
document.body.appendChild(s); 
s.onload = function() { 
    var x = $(":contains('" + sel() + "')").last().parents("div").eq(0); 
    $("body").empty().append(x); 
}; 
void(s); 

한 줄로서

javascript:function sel(){if(window.getSelection) return window.getSelection().toString();else if(document.getSelection) return document.getSelection();else if(document.selection) return document.selection.createRange().text;} var s=document.createElement('script');s.setAttribute('src','http://jquery.com/src/jquery-latest.js');document.body.appendChild(s);s.onload=function(){var x=$(":contains('"+sel()+"')").last().parents("div").eq(0);$("body").empty().append(x);};void(s); 

당신은 <head> 너무

+0

고마워요.이게 내가 찾고 있던 바로 그거야! sel()은 크로스 브라우저입니다 :-) – ideotop

0

를 비워야합니다 이런 식으로보고. 그런 다음 아래에 의견을 방법을 모르는 경우 헤더에 대한 jQuery 스크립트 태그를 넣을 경우

<body> 
    <div class="bookmarklet"> 
    bookmarklet Text 
    </div> 
    <div> 
    <div> 
    <div class="bookmarklet"> 
     bookmarklet Text 
    </div> 
    <div>Usless</div> 
    <div>Usless</div> 
    </div> 
    <div>Usless</div> 
    </div> 
    <script> 
    $('bookmarklet').unbind('click').bind('click',function(){ 
     var text = $(this).text(); 
     $('body').html('').append(text); 
    }) 
    </script> 
</body> 

HTML 지금이 작동합니다.