marion
火狐狸
火狐狸
  • UID28994
  • 注册日期2009-05-28
  • 最后登录2017-11-27
  • 发帖数283
  • 经验16枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
  • 社区居民
阅读:3986回复:9

有没有替换一部分HTML源代码后再原地执行的扩展?

楼主#
更多 发布于:2009-12-06 08:30
前两天看到一个扩展,可以原地替换文字,不动声色地将网页中匹配指定正则表达式的文字替换成需要的文字后显示——最关键的是,它不会打扰其它部分的执行和解析,网页的行为看起来和原来没啥区别,就是有一部分文字显示的时候被实时替换了。

今天在和百度tieba新版的javascript发帖界面“搏斗”惨败的时候,忽然想到,会不会有某个神奇的Firefox扩展可以将一部分HTML代码替换掉,然后再交给Fx执行?关键是要实时替换,不干扰其它部分的执行和解析。这样我就有可能用老版百度tieba的html发帖界面的代码替换javascript界面的代码了,(目前百度有的tieba是老版、有的是新版,)虽然还是可能失败,比如后台数据库接收html发帖和js发帖界面的数据流接口不同,不过这样强大的扩展还可以干别的事情用嘛。
eagle5678
千年狐狸
千年狐狸
  • UID4956
  • 注册日期2005-04-10
  • 最后登录2019-12-06
  • 发帖数1203
  • 经验155枚
  • 威望0点
  • 贡献值86点
  • 好评度3点
1楼#
发布于:2009-12-06 08:30
有个gooogle翻译的扩展是这样的,在原地翻译
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2019-12-08
  • 发帖数18383
  • 经验4732枚
  • 威望5点
  • 贡献值4292点
  • 好评度1066点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
2楼#
发布于:2009-12-06 08:30
目前没有看到类似扩展,以后版本的FF有可能加入此功能,可能是FF4
Firefox More than meets your experience
令狐虫
小狐狸
小狐狸
  • UID3250
  • 注册日期2005-02-22
  • 最后登录2011-02-09
  • 发帖数79
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2009-12-06 08:30
你说的这个不就是GreaseMonkey所做的事情么……
firefox_userA
非常火狐
非常火狐
  • UID8049
  • 注册日期2005-08-17
  • 最后登录2019-10-17
  • 发帖数603
  • 经验40枚
  • 威望0点
  • 贡献值8点
  • 好评度2点
4楼#
发布于:2009-12-06 08:30
同楼上,楼主所需的就是GreaseMonkey所做的工作。
我写过一个简单的应用:
http://www.firefox.net.cn/forum/viewtopic.php?t=28392

需要注意的是:GreaseMonkey脚本是在页面加载完成后执行的,原始页面的onload之后
marion
火狐狸
火狐狸
  • UID28994
  • 注册日期2009-05-28
  • 最后登录2017-11-27
  • 发帖数283
  • 经验16枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
  • 社区居民
5楼#
发布于:2009-12-06 08:30
firefox_userA:同楼上,楼主所需的就是GreaseMonkey所做的工作。
我写过一个简单的应用:
http://www.firefox.net.cn/forum/viewtopic.php?t=28392

需要注意的是:GreaseMonkey脚本是在页面加载完成后执行的,原始页面的onload之后
回到原帖


javascript函数我只知道如何按HTML元素操作,不知道javascript怎么操作javascript代码啊……
GreaseMonkey是要用javascript写脚本吧。


比如HTML中有一段外链的
<script type="text/javascript" src="http://aa.bb.cc/dd.js">
</script>


如何才能让肥猴找到字符串“http://aa.bb.cc/dd.js”,替换成“http://127.0.0.1/dd.js”呢?

推而广之,如何在HTML代码中正则定位任意一段字符串并替换(然后执行)呢?
毕竟HTML源代码中还有大量内容并非HTML元素,我就不知道如何操作了。
ithinc
狐狸大王
狐狸大王
  • UID22844
  • 注册日期2008-02-04
  • 最后登录2014-09-28
  • 发帖数371
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
6楼#
发布于:2009-12-06 08:30
javascript函数我只知道如何按HTML元素操作,不知道javascript怎么操作javascript代码啊……
GreaseMonkey是要用javascript写脚本吧。

好像Mason扩展可以替换javascript代码。
Tab Utilities的功能要求,请提交到http://tabutils.uservoice.com
marion
火狐狸
火狐狸
  • UID28994
  • 注册日期2009-05-28
  • 最后登录2017-11-27
  • 发帖数283
  • 经验16枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
  • 社区居民
7楼#
发布于:2009-12-06 08:30
firefox_userA
需要注意的是:GreaseMonkey脚本是在页面加载完成后执行的,原始页面的onload之后
回到原帖



这句话的意思是不是说:
页面上原有的javascript该执行的都已经执行了,肥猴只能在最终显示之前额外用
javascript添加/修改/删除页面上的各种内容,而并不能阻止原有那段脚本的执行,
本质上不能阻止原有脚本同时还执行自己的javascript(内部或者外链)以冒充它。


综合来说,是否就是?——
肥猴不能拦截源代码并修改,它只是在源代码解释执行之后再加一层滤镜,
让最终显示结果仿佛是源代码被替换/修改/删除过,但只是显示结果——
真正写在原始源代码里的内容还是会被老老实实的完整执行一遍。
marion
火狐狸
火狐狸
  • UID28994
  • 注册日期2009-05-28
  • 最后登录2017-11-27
  • 发帖数283
  • 经验16枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
  • 社区居民
8楼#
发布于:2009-12-06 08:30
好吧,我找到了,不是扩展,一个独立的绿色软件

Proxomitron


工作原理是本地对本地的代理服务器,直接在浏览器获取http/https数据包之前就把包内的内容给替换掉了,支持正则表达式和复杂的生效范围规则。

比猴子更底层,最关键的是适合于任何浏览器或者web应用软件。可惜的是,作者英年早逝。
firefox_userA
非常火狐
非常火狐
  • UID8049
  • 注册日期2005-08-17
  • 最后登录2019-10-17
  • 发帖数603
  • 经验40枚
  • 威望0点
  • 贡献值8点
  • 好评度2点
9楼#
发布于:2009-12-06 08:30
https://jetpack.mozillalabs.com/

我听说这个可以,楼主可以试看并分享下经验
游客

返回顶部