HighlightSelected

Highlight selected text on doubleclick

目前為 2018-06-21 提交的版本,檢視 最新版本

// ==UserScript==
// @name        HighlightSelected
// @namespace	novhna
// @description	Highlight selected text on doubleclick
// @include     *
// @version     0.0.1
// @grant       GM_getValue
// @grant       GM_setValue
// ==/UserScript==

const highlighter = text => `<span 
    class="tmp-highlighted"
    style="background-color: yellow;"
  >${text}</span>`

const replacer = selected => text => (text === selected 
                                      ? highlighter(text) 
                                      : text) 

document.body.addEventListener('dblclick', () => {
	const selected = document.getSelection().toString().trim()
    if (!selected) return false
    
	const page = document.body.innerHTML
	const re = RegExp(`<.+?>|\\b(${selected})\\b`, 'g')
	console.log(selected, re)

	const newPage = page.replace(re, replacer(selected))
	document.body.innerHTML = newPage
})