Существует ли какое-либо расширение Chrome, с помощью которого меня будет предупреждать автоматическое выделение, когда мое ключевое слово будет найдено на странице?
Я не хочу использовать crtl+f каждый раз.
Существует ли какое-либо расширение Chrome, с помощью которого меня будет предупреждать автоматическое выделение, когда мое ключевое слово будет найдено на странице?
Я не хочу использовать crtl+f каждый раз.
Вот еще один пользовательский скрипт, который не нуждается в jQuery, поддерживает регистрозависимое сопоставление с учетом регистра и фактически выделяет конкретные слова, которые вы хотите сопоставить:
// ==UserScript==
// @name Keyword Highlight 2
// @author Ilmari Karonen
// @namespace http://superuser.com/questions/467276
// @include http://*
// ==/UserScript==
// Edit this regexp to match what you want highlighted; don't forget the "g" flag!
var r = /Chrome/ig;
// This span will be used to wrap the highlighted text:
var span = document.createElement( 'span' );
span.style.backgroundColor = 'yellow';
// Pre-create some other handy objects for later:
var text = document.createTextNode( '' );
var frag = document.createDocumentFragment();
// Walk the document body node by node:
var e = document.getElementsByTagName( 'body' )[0];
while ( e ) {
// If it's a text node, match it against the regexp:
if ( e.nodeType == Node.TEXT_NODE ) {
var t = e.textContent, i = 0, m;
while ( (m = r.exec( t )) !== null ) {
// Copy any text before the match into the fragment:
text.textContent = t.substring( i, m.index );
frag.appendChild( text.cloneNode( true ) );
// Wrap the match in a span and copy it into the fragment:
span.textContent = m[0];
frag.appendChild( span.cloneNode( true ) );
// Keep track of the current match position:
i = m.index + m[0].length;
}
if ( i > 0 ) {
// Remove the matched text from e and re-insert it before it:
e.textContent = t.substring( i );
e.parentNode.insertBefore( frag, e );
// Reset frag to a new empty fragment:
frag = frag.cloneNode( false );
}
}
// Advance to next node in DOM (bugfix: skip textarea content):
var n = e.firstChild;
if ( /^(head|title|script|style|textarea)$/i.test( e.tagName ) ) n = null;
while (!n && e) {
n = e.nextSibling;
e = e.parentNode;
}
e = n;
}
Обязательный скриншот:
Вы можете использовать пользовательский скрипт, как показано ниже:
// ==UserScript==
// @name Keyword Info
// @namespace SuperUser 467276
// @include http://*
// ==/UserScript==
function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "//code.jquery.com/jquery-latest.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "jQuery.noConflict();(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
function main() {
jQuery('*:contains("chrome")').each(function(){
if(jQuery(this).children().length < 1)
jQuery(this).css("background-color", "yellow") });
}
addJQuery(main);
Это выделит все элементы (не только соответствующий текст, так как HTML так не работает), которые напрямую содержат регистрозависимые совпадения для строки поиска, например, chrome
.
Это решение использует код включения jQuery из этого вопроса переполнения стека. Могут быть проблемы с сайтами, уже включающими jQuery; Вы могли бы быть более успешными с другими решениями.
Скриншот: