Вы не можете вызвать диалог поиска на основе Chrome, но вы можете вызвать window.find()
. Основными отличиями между внутренним диалогом и find()
являются
find()
, который выделяет только одно из совпадений на странице, тогда как родной диалог выделяет все. Если быть точным, find()
начнется с выделения совпадения, ближайшего к верхней части документа, а повторные вызовы переместят его вниз по странице. find()
выделит выделенный текст в стандартном синий цвет, в то время как диалог поиска Chrome выделяет свои совпадения оранжевым цветом. Однако это можно передразнить, изменив свойство CSS background
псевдо-класса ::selection
. В зависимости от вашего варианта использования этого может быть достаточно.
Однако, если вы хотите выделить конкретную цитату на странице и должны учитывать возможные дубликаты этой цитаты, тогда это немного сложнее, и я не уверен, что это можно сделать в совершенстве. Вы хотите получить точное местоположение выделенного текста с помощью window.getSelection()
, найти способ идентифицировать его startNode
и endNode
для перезагрузки страниц (если у них есть идентификаторы, это легко , но если нет, вам придется прибегать к хакам), а затем, когда страница будет открыта повторно, используйте Selection.addRange()
, чтобы восстановить ее.