如果可能,如何在执行前使用Chrome扩展程序编辑<script>标记中的代码?

时间:2018-01-13 23:51:57

标签: javascript google-chrome google-chrome-extension

所以我有一个包含如下元素的页面:

&#xA;&#xA;
 &lt; script&gt;&#xA; $(function(){&#xA; var foo = new Bar();&#xA;});&#xA;&lt; / script&gt;&#xA;  
&#xA; &#xA;

($()函数是JQuery $(document).ready()别名。&#xA;我希望我的Chrome扩展程序修改它,将foo设置为global,或者否则修改foo(例如执行foo.x = 2,foo.y = 10),但我很难找到任何方法来做到这一点,我已经尝试更改元素,复制页面上的每个脚本,包括这个,编辑这个,然后尝试重新运行所有脚本,还有一些,但我什么都没发现。帮助将不胜感激!

&#xA;

1 个答案:

答案 0 :(得分:1)

我能做的最好的就是伪造jQuery ......虽然这种方法非常有限且无法扩展,但它总比没有好,所以...

你需要:

  1. 首先阻止加载jQuery
  2. 创建$(),记住以后需要传递给jQuery的函数
  3. 以某种方式识别foo的函数,并从第2点的数组中删除它。
  4. 获取document.body.innerHTML并找到您的功能
  5. 将此功能注入数组
  6. 最后让jQuery执行并将函数从第2点传递给jQuery