2012-05-24 75 views
0

是否可以突出顯示網頁上的文本,然後使用javaScript檢查html? (假設JavaScript將HTML分成另一個DIV)是否可以使用javaScript突出顯示文本並檢查html?

我正在構建chrome的擴展,我希望用戶能夠突出顯示文本,並且我希望擴展能夠做兩件事:複製該文本(在textarea/input或span/div/any-element中或者檢查span/div/any-element中選定文本的HTML)

這都是在chrome有能力編輯&檢查DOM,我相信這是因爲我在GC的擴展管理器中收到這個警告 enter image description here 這告訴我擴展名有一定的訪問權限,至少對頁面地址有更多的訪問權限嗎?

+0

出於好奇,你打算進行什麼樣的dom元素檢查? –

+0

我希望用戶能夠突出顯示屏幕上的元素,並讓我的擴展程序定期檢查該元素是否已更改。 – Keysle

回答

0

注意:以下內容在IE <中不起作用9.對於跨瀏覽器解決方案,請參閱HTML of selected text

function getSelectionText() { 
    var text = ""; 
    if (typeof window.getSelection != "undefined") { 
     text = window.getSelection().toString(); 
    } 
    return text; 
} 

function getSelectionHtml() { 
    var html = ""; 
    if (typeof window.getSelection != "undefined") { 
     var sel = window.getSelection(); 
     if (sel.rangeCount) { 
      var container = document.createElement("div"); 
      container.appendChild(sel.getRangeAt(0).cloneContents()); 
      html = container.innerHTML; 
     } 
    } 
    return html; 
} 
0

首先,不介意Chrome提供隱身模式的警告。它只是爲了警告人們,當在隱身模式下啓用擴展程序時,用戶不能100%安全,以至於他的瀏覽行爲將不會被記錄(某些惡意擴展可能會收集例如銀行訪問數據)。

如果您想要捕捉用戶在某些textarea /輸入字段中選擇的文本,您需要先閱讀並在您的擴展中實現content script。 Chrome會將這樣的腳本注入到您選擇的網站中。從那裏它可以操縱DOM並監聽事件(就像普通腳本嵌入網站一樣)。

有關獲取選定文本的詳細信息,請參閱Tims回答您的問題或簡單搜索stackoverflow - 此問題之前曾多次提出。

+0

謝謝。這太棒了 – Keysle

+0

對不起,問一個重複的問題。我先搜索了一下,我一定是用了一套錯誤的單詞。 – Keysle

相關問題