HTML5技术

本地修改js代码并时时生效的解决办法 - 等你归去来

字号+ 作者:H5之家 来源:H5之家 2017-06-09 14:00 我要评论( )

js作为客户端语言(当然它也可以作服务端语言),非常强悍,一般情况下,我们都是在开发阶段不停的改,然后上线之后就作为稳定运行的代码。 然而有时候可能因为js写得有问题,导致上线后,某些功能无法使用,这就悲催了,而且一般的公司上线应该都不会很容易

  js作为客户端语言(当然它也可以作服务端语言),非常强悍,一般情况下,我们都是在开发阶段不停的改,然后上线之后就作为稳定运行的代码。

  然而有时候可能因为js写得有问题,导致上线后,某些功能无法使用,这就悲催了,而且一般的公司上线应该都不会很容易。

  那么对于这种js一类的修改,如果能在本地临时生效,做一些紧急问题的修复,就很重要了。(我也是遇到这个坑,只要把这次临时问题修复,等下一个功能代码要上线时,再修复也是可以的)

  那么,怎样做到本地修改js文件,从而达到代码运行ok的效果呢? 本文将会给出多种解决方案:

一、 使用fiddler拦截请求更改参数!!!

  如果是因为某些必要参数传递不对,从而导致服务端无法正常运行,那么我们可以直接拦截请求,修改参数,再次发送到服务端,从而规避该问题。

  这种情况一般发生在使用ajax访问服务端程序时出现,比如某个值因为某种原因,导致js发送ajax请求时,少了某个必要参数,从而导致服务端报参数错误。

  具体解决办法就是:下载并安装http调试神器fiddler, 设置对该站点的拦截请求如: bpu , 在拦截到后,添加该必要参数,点击继续请求,从而达到通过服务端验证的需求,如果要求多次操作,那么还可以设置自动修改拦截请求参数的设置,具体方法请自行研究fiddler自动拦截请求方法。

  当然了,这种请求主要针对http协议,对于https还是显得有些为难的,这也是为什么https会如此受追棒的原因吧。

二、 通过使用浏览器插件Tampermonkey,动态修改js代码!!!

  如果需要修改处理逻辑较多,那么,可以借助Tampermonkey插件,直接覆盖某js文件,从而达到请求更改的处理。页面部分处理如下:

 

   主要填写需要替换的js文件的路径,然后写需要覆盖的js逻辑,保存,刷新即可生效。

三、 直接通过控制台运行代码,覆盖原有代码生效!!!

  我平时主要使用控制台来计算一些自己试验性质的代码,但是后来我发现,这个功能完全可以覆盖到真正生产中的代码里去。

  比如有一个按钮的监听事件(假设使用jquery写的)

$('#id').on('click', function() { alert(111); });

  那么,如果,如果我想改怎么办? 解决为,直接在控制台重新注册该事件即可,即运行:

$('#id').off().on(function() { alert('my alert'); });

这样,当点击该按钮时,就会生效为后面代码的功能了。

  注意这里有一事件冒泡的问题,一定要先解绑事件,再注册事件,否则会有多个事件响应。

  那么,对于函数一类呢,则是直接以相同的函数名称重写方法即可,而根据js的运行原理,即会运行你后面写的方法。

 

  好了,本地修改js并生效的方法,大概就说到这里,个人感觉也够用了。

  js作为客户端语言确实很方便,尤其是明白了发一次上线代码不容易之后。有时真能解燃眉之急!!!

  另作声明: 虽然js可以方便本地更改js生效,但是这并不意味着js显得太不安全了,因为这里所有的操作都是以在你本机上操作为基础前提的,也就是说你会为你所有的更改负责,而不是js为你的安全买单!

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5笔记3——Web Storage和本地数据库 - 邹琼俊

    HTML5笔记3——Web Storage和本地数据库 - 邹琼俊

    2017-06-07 16:00

  • Js如何调用本地应用程序 - 谁人堪与

    Js如何调用本地应用程序 - 谁人堪与

    2017-05-18 14:02

  • 如何实现在Windows上运行Linux程序,附示例代码 - q303248153

    如何实现在Windows上运行Linux程序,附示例代码 - q303248153

    2017-05-16 14:00

  • 通用网页调用本地应用程序方案(windows平台) - 小龙女先生

    通用网页调用本地应用程序方案(windows平台) - 小龙女先生

    2017-05-16 13:00

网友点评