2011-11-28 40 views
1

在我的應用程序的選擇的基礎上有一個網頁視圖HTML文件顯示。我有一個筆記功能,當用戶選擇文本時,它會突出顯示,並且圖像將作爲後綴添加。這個筆記然後被保存爲一個html文件。更改一些找HTML文本

因此,對於這個功能,我寫了一個Java腳本函數。

function highlightsText() 
{ 

    var range = window.getSelection().getRangeAt(0); 
    var selectionContents = range.extractContents(); 

    var newDate = new Date; 
    var randomnumber= newDate.getTime(); 

    var div; 

    var imageTag = document.createElement("img"); 
    imageTag.id=randomnumber; 
    imageTag.setAttribute("src","notes.png"); 

    var linkTxt = document.createElement("a"); 
    linkTxt.id=randomnumber; 
    linkTxt.setAttribute("href","highlight:"+randomnumber); 

    linkTxt.appendChild(selectionContents) 

    div = document.createElement("span"); 


div.style.backgroundColor = "yellow"; 
div.id=randomnumber; 

linkTxt.appendChild(imageTag); 
div.appendChild(linkTxt); 

range.insertNode(div); 


    return document.body.innerHTML+"<noteseparator>"+randomnumber+"<noteseparator>"+range.toString(); 
} 

在這裏,我正在做一個跨度,這個跨度可以讓我突出顯示文字和圖像。

現在problem是,

當我選擇一個段落,它只是增加了一個圖像,並沒有突出顯示文本。 如果我使用div或p標籤代替跨度,那麼它會爲單個單詞提供一整行,看起來很奇怪。

回答

1

編輯:div標籤將得到一個斷行和(通常,大多數瀏覽器做到這一點,認爲這是一個「師」 /塊級元素)之前之後,你最好使用一個跨度。

其次,你應該選擇的內容,追加到跨度

ispain.appendChild(selectionContents)!並且不要忘記分號;)

在旁註中,您知道: 1-您不能擁有以數字開頭的html元素ID。 012-2-具有多個具有相同ID的元素在選擇em時會變得不可預知。

+0

從兩個段落中選擇文本時,使用跨度不起作用。 – Ishu