Firefox:运行 功能来自 Javascript 通过扩展
Firefox: run functions from Javascript through an extension
目前我正在将 Javascript 粘贴到 FF 的控制台中,并从控制台调用函数:
function fill (i){
if(i==1){
SINGLE_START();
}
else if(i==2){
DUAL_START();
}
else if(i==3){
INTEGRATED_START();
}
else{
alert("=======================\n Tool Filler\n=======================\n\n1 or 2");
}
}
用于抓取网站内容,例如从网站的某些部分创建文件或生成电子邮件,例如:
function SINGLE_START(){
//Focus:
let d = $(document).activeElement.contentDocument.activeElement.contentDocument.activeElement.contentDocument;
等等
我想,可能有一种方法可以通过扩展使用它,所以我安装了 Tampermonkey 并将脚本保存为扩展中的用户脚本。但是我遇到了一个问题,我无法根据需要从脚本中调用所需的函数,而不仅仅是在网站加载时启动脚本。
有谁知道如何从 Tampermonkey(或 Greasemonkey)或任何其他扩展程序中一一调用函数?
提前致谢!
这是因为 Tampermonkey 脚本 运行 在孤立的上下文中。有两种:
1。无特殊特权
如果您没有使用 @grant GM_doThisAndThat
解锁的任何特殊 GM 功能,而是使用 @grant none
,那么内部发生的事情是这样的:
function TheScript() {
// Here is your script that you added to tampermonkey
}
TheScript();
这个如果你有一个函数,它只在脚本中可用。您需要将其显式公开给 window 上下文:
function fill (i){
... code here ...
}
window.myFill = fill;
然后在控制台你写myFill(42)
它就会执行。
我建议您避免将 fill
分配给 window,因为它是一个可能与某些内容冲突的名称,但这取决于您。
2。特权
如果您正在使用某些 GM 功能,则需要添加 @grant unsafeWindow
,然后分配给 unsafeWindow
变量。 小心你这样暴露的内容,你不想让网站访问任何 GM_function
功能,因为他们可以访问你在其他网站和你的计算机上的私人数据!
目前我正在将 Javascript 粘贴到 FF 的控制台中,并从控制台调用函数:
function fill (i){
if(i==1){
SINGLE_START();
}
else if(i==2){
DUAL_START();
}
else if(i==3){
INTEGRATED_START();
}
else{
alert("=======================\n Tool Filler\n=======================\n\n1 or 2");
}
}
用于抓取网站内容,例如从网站的某些部分创建文件或生成电子邮件,例如:
function SINGLE_START(){
//Focus:
let d = $(document).activeElement.contentDocument.activeElement.contentDocument.activeElement.contentDocument;
等等
我想,可能有一种方法可以通过扩展使用它,所以我安装了 Tampermonkey 并将脚本保存为扩展中的用户脚本。但是我遇到了一个问题,我无法根据需要从脚本中调用所需的函数,而不仅仅是在网站加载时启动脚本。
有谁知道如何从 Tampermonkey(或 Greasemonkey)或任何其他扩展程序中一一调用函数?
提前致谢!
这是因为 Tampermonkey 脚本 运行 在孤立的上下文中。有两种:
1。无特殊特权
如果您没有使用 @grant GM_doThisAndThat
解锁的任何特殊 GM 功能,而是使用 @grant none
,那么内部发生的事情是这样的:
function TheScript() {
// Here is your script that you added to tampermonkey
}
TheScript();
这个如果你有一个函数,它只在脚本中可用。您需要将其显式公开给 window 上下文:
function fill (i){
... code here ...
}
window.myFill = fill;
然后在控制台你写myFill(42)
它就会执行。
我建议您避免将 fill
分配给 window,因为它是一个可能与某些内容冲突的名称,但这取决于您。
2。特权
如果您正在使用某些 GM 功能,则需要添加 @grant unsafeWindow
,然后分配给 unsafeWindow
变量。 小心你这样暴露的内容,你不想让网站访问任何 GM_function
功能,因为他们可以访问你在其他网站和你的计算机上的私人数据!