Greasemonkey替换网页中的unityObject源

时间:2016-07-16 03:23:47

标签: javascript html unity3d embed greasemonkey

我对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')

我如何编写脚本来执行此操作?

1 个答案:

答案 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);
    }
}