Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Greasemonkey脚本,从其他页面脚本调用函数_Jquery_Greasemonkey - Fatal编程技术网

Jquery Greasemonkey脚本,从其他页面脚本调用函数

Jquery Greasemonkey脚本,从其他页面脚本调用函数,jquery,greasemonkey,Jquery,Greasemonkey,我正在为其编写greasemonkey脚本的页面已经包含jquery,因此我想知道是否/如何访问已经包含的jquery函数,而不是在我的greasemonkey脚本中包含jquery 在我的尝试中,如果我将jquery包含在脚本中,它就可以正常工作。但是我没有找到服务器页面包含的函数。我无法控制服务器 主要是好奇我是否能访问这些函数 最坏的情况是,我将在脚本中包含jquery代码,因此这不是一个严重的问题。这有点不太正常,但有时您可以通过创建triggerfunction HTML元素并将其插入

我正在为其编写greasemonkey脚本的页面已经包含jquery,因此我想知道是否/如何访问已经包含的jquery函数,而不是在我的greasemonkey脚本中包含jquery

在我的尝试中,如果我将jquery包含在脚本中,它就可以正常工作。但是我没有找到服务器页面包含的函数。我无法控制服务器

主要是好奇我是否能访问这些函数


最坏的情况是,我将在脚本中包含jquery代码,因此这不是一个严重的问题。

这有点不太正常,但有时您可以通过创建triggerfunction HTML元素并将其插入页面来触发页面上的函数。然后使用Greasemonkey在您想要触发函数时单击链接

例如,假设页面上有一个名为“runGame()”的函数。在Greasemonkey脚本的早期,您有:

 var triggerHTML = "<a id=\"triggerfunction\" onclick=\"runGame()\">triggerfunction</a>";
然后,当您想运行函数时,执行

 var evt = document.createEvent("MouseEvents");
 evt.initMouseEvent("click", true, true, window, 
            0, 0, 0, 0, 0, 
            false, false, false, false, 
            0, null);
 var triggerGame= document.getElementById("triggerfunction");
 triggerGame.dispatchEvent(evt);

您应该使用
unsafeWindow
调用页面脚本,例如,您将编写
unsafeWindow.$
而不是
$


但是,请确保您了解因使用不安全窗口而产生的安全威胁,这些威胁在中有说明。

为什么这个问题被否决?对我来说,这似乎是一个非常清楚的问题。服务器页面?$()中包含的
函数是什么?其他几个函数似乎可以通过unsafeWindow访问。有没有更安全的方法?
 var evt = document.createEvent("MouseEvents");
 evt.initMouseEvent("click", true, true, window, 
            0, 0, 0, 0, 0, 
            false, false, false, false, 
            0, null);
 var triggerGame= document.getElementById("triggerfunction");
 triggerGame.dispatchEvent(evt);