Javascript页面脚本注入调试

      在网页Javascript开发中,调试一般不集成在开发环境,而集成在宿主环境里。所以宿主环境都会有相应的脚本调试工具,但B/S结构中客户端也具有个体差异,不同浏览器很难让问题重现,所以即时调试也有一定实用价值。脚本是驻留宿主环境内存的,所以我们可以动态改变。

脚本分析如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试Demo</title>
<script type="text/javascript">
var $=function(id){
	return document.getElementById(id);
}
</script>
</head>
<body>
<div>累加器:<span id="display">0</span></div>
<script type="text/javascript">
var timer=1000;//计时
function run(){
	setTimeout(function(){
		$("display").innerHTML=parseInt($("display").innerHTML)+1;
		run();//递归
	},timer);
	return;
}
run();
//javascript:void(function(){timer=100}());
</script>
</body>
</html>

 上述代码是简单模拟一个计数器,实现的是间隔每秒钟执行一次函数,而控制是全局变量timer进行,所以可以由以下脚本注入对源代码进行修改。使用方法,将代码输入地址栏回车即可。

javascript:void(function(){timer=100;}());

 根据原理,我们可以有以下知识扩展,加载Firebug的JS版,代码如下:

javascript:void(function(){eval("var _script= document.createElement(\"script\"); _script.type = \"text/javascript\";_script.src = \"http://fbug.googlecode.com/svn/lite/branches/firebug1.4/content/firebug-lite-dev.js\"; document.getElementsByTagName(\"head\")[0].appendChild(_script);")}());

 为页面加载JQuery脚本库:

javascript:void(function(){eval("var _script= document.createElement(\"script\"); _script.type = \"text/javascript\";_script.src = \"http://www.sise.com.cn/js/jquery-latest.js\"; document.getElementsByTagName(\"head\")[0].appendChild(_script);")}());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值