我正在编写一个greasemonkey脚本的页面已包含jquery,所以我想知道是否/如何访问已包含的jquery函数,而不是在我的greasemonkey中包含jquery脚本。Greasemonkey脚本,从其他页面脚本调用函数
在我的尝试中,如果将jquery包含在我的脚本中,jquery可以正常工作。但我没有找到服务器页面包含的函数。我无法控制服务器。
大多只是好奇,如果我可以访问这些功能。
最糟糕的情况我会在我的脚本中包含jquery代码,所以它不是一个严重的问题。
我正在编写一个greasemonkey脚本的页面已包含jquery,所以我想知道是否/如何访问已包含的jquery函数,而不是在我的greasemonkey中包含jquery脚本。Greasemonkey脚本,从其他页面脚本调用函数
在我的尝试中,如果将jquery包含在我的脚本中,jquery可以正常工作。但我没有找到服务器页面包含的函数。我无法控制服务器。
大多只是好奇,如果我可以访问这些功能。
最糟糕的情况我会在我的脚本中包含jquery代码,所以它不是一个严重的问题。
这有点不好意思,但有时你可以通过创建一个触发函数HTML元素并将其插入页面来触发页面上的函数。然后使用Greasemonkey在您想要触发该功能时点击链接。
例如,假设页面上有一个名为“runGame()”的函数。在您的Greasemonkey脚本的早期阶段,您有:
var triggerHTML = "<a id=\"triggerfunction\" onclick=\"runGame()\">triggerfunction</a>";
然后您将它插入到适当位置的页面中。例如,假设你发现在前面的一个地方它可以很好地坐下:当你想运行函数
target.parentNode.insertBefore(triggerHTML, target);
再后来,你执行
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引起的安全威胁 - 它们描述在http://wiki.greasespot.net/UnsafeWindow。
为什么这个问题被低估?这对我来说似乎是一个非常明确的问题。 – Pointy 2011-04-18 14:21:39
什么是服务器页面包含的'函数? – wong2 2011-04-18 14:44:08
$()和其他几个人http://www.craigslist.org/js/jquery.js – fbas 2011-04-18 15:18:39