2012-12-17 126 views
1

可能的複製文本的高亮:Change CSS of selected text using Javascript選擇和iPhone/iPad的網絡瀏覽器Safari瀏覽器不工作

我試圖將代碼從上面的鏈接,但沒有得到iPad的瀏覽器以高亮顯示所選文本的結果。

function makeEditableAndHighlight(colour) { 
    var range, sel = window.getSelection(); 
    if (sel.rangeCount && sel.getRangeAt) { 
     range = sel.getRangeAt(0); 
    } 
    document.designMode = "on"; 
    if (range) { 
     sel.removeAllRanges(); 
     sel.addRange(range); 
    } 
    // Use HiliteColor since some browsers apply BackColor to the whole block 
    if (!document.execCommand("HiliteColor", false, colour)) { 
     document.execCommand("BackColor", false, colour); 
    } 
    document.designMode = "off"; 
} 

function highlight(colour) { 
    var range, sel; 
    if (window.getSelection) { 
     // IE9 and non-IE 
     try { 
      if (!document.execCommand("BackColor", false, colour)) { 
       makeEditableAndHighlight(colour); 
      } 
     } catch (ex) { 
      makeEditableAndHighlight(colour) 
     } 
    } else if (document.selection && document.selection.createRange) { 
     // IE <= 8 case 
     range = document.selection.createRange(); 
     range.execCommand("BackColor", false, colour); 
    } 
} 

它在Safari瀏覽器,Chrome瀏覽器等桌面瀏覽器中完美地工作。但在iPad Safari瀏覽器的情況下,選擇的方式與文本選擇方式不同,就像在任何桌面瀏覽器中一樣,我沒有得到突出顯示文本的結果。

enter image description here

我簡單的HTML代碼是:

 <div><h1>Introduction </h1></div> 

    <div>   
      <p>This is an example: </p> 
      <p>in other paragraph.</p> 
      <p>one more paragraph </p> 

      <button type="button" onclick="highlight('yellow')">Click Me!</button> 
    </div> 

請建議,如果需要進行任何更改或任何其他API需要被包括在內。

回答

2

您通過touchend -event(和+ click桌面支持)來觸發highlight -function:

jQuery的

$('button').on('click touchend', function() { 
    highlight('yellow'); 
}); 

Fiddle

+1

感謝您的答覆。但我不覺得它工作。 – Satish

+0

你使用哪個iOS版本? – yckart

+0

雅感謝它的工作,在舊版本的jquery中,它不被支持。我必須下載新的jQuery庫1.8.3。 。早先我使用jquery 1.6.4,不支持它。 – Satish

相關問題