我对Greasemonkey来说是全新的,我搜索了很多想找我想做的事情并没有找到任何东西。我正在为这个基于浏览器的Unity FPS做一些黑客攻击,我试图让网页嵌入游戏文件的直接链接编辑副本,而不是普通的游戏客户端。 具体来说,我试图在this页面源的第335行上更改UnityObject.embedUnity()函数的第二个属性中的URL。我认为Greasemonkey是采用它的方式。
我的困惑来自查看源(ctrl + u)在javascript函数中显示此源的事实,但在dev工具中使用检查器会在embed标记中显示函数的结果。我不确定在我的Greasemonkey脚本中要考虑哪个。我还没有直接链接文件,但我尝试了这个脚本(它没有用)(谷歌只是一个占位符,看看文本替换是否有效):
var tags = document.getElementsByTagName('embed');
tags[0].src = tags[0].src.replace('http://oldurl.com', 'http://newurl.com')
我如何编写脚本来执行此操作?
答案 0 :(得分:0)
该embed
元素由位于页面<script>
标记内的Unity Player js代码插入,该代码在浏览器解析时自动执行。
Firefox仍有beforescriptexecute事件可用于在运行之前更改该脚本:
document.addEventListener("beforescriptexecute", replacePlayer, true);
function replacePlayer(e) {
var lookFor = 'http://data.warmerise.com/Warmerise/Production/Warmerise.unity3d?5.7.5';
var replaceWith = 'http://google.com';
if (e.target.text.indexOf(lookFor) > 0) {
e.target.text = e.target.text.replace(lookFor, replaceWith);
}
}