2017-01-13 32 views
-2

我试图改变一个js函数(在HTML中)或在使用(从站点的其他部分)时添加一个事件监听器。用Greasemonkey在HTML中添加事件监听器或替换脚本

即使当我设置为“”我仍然可以访问该函数,通过更改innerHTML替换js对象将不起作用。 Eventlistener似乎也不能与这些工作。

有什么方法可以改变它吗?

剧本我想改变:

<head><title></title> 
<script language="JavaScript"> 
    function add(message) { 
      alert(message); 
    } 
</script></head> 

编辑:改剧本

+0

源代码的位置在哪里? *“(在HTML中)”*什么HTML?你没有显示任何源代码,所以没有任何工作/调试.... – NewToJS

+0

现在你已经添加了一些源代码..你想要改变这个功能?其他相关要素在哪里?什么是触发/调用该功能?什么是'message,scrolltag'和'container'元素在哪里... – NewToJS

+0

@NewToJS只是改变了脚本真的无所谓当我可以访问它的函数 – basicn00b

回答

0

你可以包装和重新定义原始函数名。例如,要影响您在上面发布的代码,您会执行类似的操作:

var _add = add; 
add = function(){ 
    // do other stuff 
    _add(); 
} 
+1

这是工作时,我我正在使用控制台的添加功能,但当网站本身打开功能 – basicn00b

+0

时,它不工作吗greasemonkey可以访问主机页面的页面上下文吗? AFAIK,扩展有一个独立的“窗口”对象从主机页面,需要通过不同的var访问,如http://stackoverflow.com/questions/2303147/injecting-js-functions-into-the-page-from- a-greasemonkey-script-on-chrome –

+0

它正在工作,现在正在添加“// @ run-at document-start”谢谢! – basicn00b

相关问题