是否可以编写Greasemonkey脚本来触发Firefox中的 Ctrl + A (全选)操作? (如果启用了脚本,则在加载新页面之后???)
在任何级别帮助我。
“Firefox已经有了加速读取或朗读所选文本的插件。我只想自动选择要选择文本的部分。”
答案 0 :(得分:4)
var r = document.createRange()
r.selectNode(document.body)
window.getSelection().addRange(r)
我尝试创建一个新的Greasemonkey脚本,输入上面的代码(我从this page抓取并编辑),然后加载页面。
它确实选择了所有文本,但对于某些页面,它会立即被取消选中。例如,谷歌的主页,因为该页面集中了搜索字段。
这对谷歌不起作用,因为它与本机脚本作斗争。但是,通过在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 ();
}