2014-09-04 151 views
0

如何選擇使用javascript的整個HTML文檔。選擇HTML文檔的所有文本

我已經嘗試過這些功能,但力量工作!

function SelectAll() 
     { 
      document.body.focus(); 
      document.body.select(); 
     } 

function SelectAll() 
      { 

       document.body.select(); 
      } 

我的整個代碼是

<head> 
    <script type="text/javascript"> 


     function SelectAll() 
     { 
      document.body.focus(); 
      document.body.select(); 
     } 
    </script> 
</head> 
<body> 
    <div>LaLa, Lala, laLa , lala, lalala, tralala, some other text</div> 
    <br /> 
    <input type="text" id="findField" value="lala" size="20" /> 
    <button onclick="SelectAll();">Find!</button> 
</body> 
+0

試試這個'$( '主體')選擇()' – Amit 2014-09-04 07:26:54

+0

@AmitAgrawal不過,這辛苦工作! – user3873909 2014-09-04 07:42:33

回答

2

通過Satya-Weblog

(function() { 
    function selectText(element) { 
     var doc = document 
      , text = element 
      , range, selection 
     ; 
     if (doc.body.createTextRange) { //ms 
      range = doc.body.createTextRange(); 
      range.moveToElementText(text); 
      range.select(); 
     } else if (window.getSelection) { //all others 
      selection = window.getSelection(); 
      range = doc.createRange(); 
      range.selectNodeContents(text); 
      selection.removeAllRanges(); 
      selection.addRange(range); 
     } 
    } 
    preTags = document.getElementsByTagName('document.body'); 
    for(var i=0;i<preTags.length;i++) { 
     preTags[i].onclick = function() {selectText(this)}; 
    } 
})(); 
+1

這應該工作,但因爲你只有一個身體標記你不需要的循環,並且它應該是'document.getElementsByTagName(「身體」)' – Jason 2014-09-04 07:45:34

+1

ichanged的功能 功能全選() \t \t { \t \t \t var doc = document ,text ='body' ,range,select ; if(doc.body.createTextRange){// ms range = doc.body.createTextRange(); range.moveToElementText(text); range.select(); } else if(window.getSelection){//所有其​​他人 selection = window.getSelection(); range = doc.createRange(); range.selectNodeContents(text); selection.removeAllRanges(); selection.addRange(range); } \t \t} 但不工作 – user3873909 2014-09-04 08:05:06

+0

編輯: 功能全選() \t \t { \t \t \t變種DOC =文檔 ,文本= 「身體」 ,範圍,選擇 ; \t \t如果(doc.body.createTextRange){//毫秒 \t \t \t範圍= doc.body.createTextRange(); \t \t \t range.moveToElementText(document。的getElementsByTagName( 「正文」)); \t \t \t range.select();其他if(window.getSelection){//所有其​​他 \t \t selection = window.getSelection(); range = doc.createRange(); range.selectNodeContents(text); selection.removeAllRanges(); selection.addRange(range); \t \t \t} \t \t} 不工作!! – user3873909 2014-09-04 08:17:32

0

,你可以把它寫這樣

(function() { 
function selectText(element) { 
    var doc = document 
     , text = element 
     , range, selection 
    ; 
    if (doc.body.createTextRange) { //ms 
     range = doc.body.createTextRange(); 
     range.moveToElementText(text); 
     range.select(); 
    } else if (window.getSelection) { //all others 
     selection = window.getSelection(); 
     range = doc.createRange(); 
     range.selectNodeContents(text); 
     selection.removeAllRanges(); 
     selection.addRange(range); 
    } 
} 
preTags = document.getElementsByTagName('document.body'); 
for(var i=0;i<preTags.length;i++) { 
    preTags[i].onclick = function() {selectText(this)}; 
} 

})();

-1

最簡單的方法來做到這一點。

$('input[type=button]').click(function() { 
$("#t1").select(); 
}); 

FIDDLE

0

要選擇一個元素中的所有文本使用這個簡單的代碼。它會突出顯示黃色的整個元素/標籤區域,並在其中單擊選擇文本。

document.onclick = function(event) { 
    var range, selection; 
event.target.style.backgroundColor = 'yellow'; 
     selection = window.getSelection(); 
     range = document.createRange(); 
     range.selectNodeContents(event.target); 
     selection.removeAllRanges(); 
     selection.addRange(range); 
}; 

要選擇整個文檔中的所有文本,你可以修改這個代碼,如下圖所示:

document.onclick = function(event) { 
    var range, selection; 
    var doc = document.body; 
    doc.style.backgroundColor = 'yellow'; 
     selection = window.getSelection(); 
     range = document.createRange(); 
     range.selectNodeContents(doc); 
     selection.removeAllRanges(); 
     selection.addRange(range); 
};