var r = document.createRange()
r.selectNode(document.body)
window.getSelection().addRange(r)
Я попытался создать новый скрипт Greasemonkey, набрав приведенный выше код (который я взял и отредактировал с этой страницы ), и загрузив страницу.
Он выбрал всетекст, но для некоторых страниц, он сразу становится невыбранным.Например, домашняя страница Google, потому что страница фокусируется на поле поиска.
Обновление BA:
Это не сработало в Google, потому что оно борется с собственными скриптами.Но, повторно запустив код на onload
и снова после этого, мы можем сохранить выделение.
Кроме того, если собственный скрипт устанавливает фокус на input
или textarea
, мы должны бороться с этим.
Итак, скрипт Greasemonkey, который включает в себя все эти идеи и, кажется, работает:
//--- Save this as "SelectWholePage.user.js" and install with Greasemonkey.
//
// ==UserScript==
// @name Select a whole page
// @namespace google.com
// @description Selects a whole page (equivalent to 'Ctrl-A').
// @include http://www.google.com/*
// ==/UserScript==
//
/*--- Run the main function 3 times (when DOM ready, at load and just after
load) because page javascript will often reset the focus and selection.
*/
LocalMain ();
window.addEventListener
(
"load",
function(evt)
{
LocalMain ();
window.setTimeout (LocalMain, 222);
},
false
);
function LocalMain ()
{
var WholePage = document.createRange ();
WholePage.selectNode (document.body);
window.getSelection ().addRange (WholePage);
var aInputs = document.getElementsByTagName ("input");
for (var J = aInputs.length-1; J>0; J--)
aInputs[J].blur ();
document.body.focus ();
}