论坛首页 Web前端技术论坛

挑战javascript不知道能不能实现 

浏览 3684 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2007-07-03  
<div id="d1" onclick="ss('abcgfsg')" style="background-color:#FF0000;">AAAAdAA</div>
<div id="d2" onclick="ss('abfg')" style="background-color:#FFdd00;">BBBBfgBB</div>
<div id="d3" onclick="ss('afdghhg')" style="background-color:#FFdd00;">CCfgfgf</div>
<input type="button" value="show" onclick="show()">
------------
如何在show()函数中得到上述三个div里的onclick函数ss里的参数,即:abcgfsg,abfg,afdghhg
得到后用一个数组保存他(得到后这就容易实现了)
我水平不高 所以想了半天不知如何实现 特来请教,请指教
   发表时间:2007-07-03  
你都不如告诉你的需求,让大家看看有什么好办法解决。
0 请登录后投票
   发表时间:2007-07-03  
改成这样就行,不知合你的意不.

function show()
{
var d1;
d1=document.getElementById("d1").value;
alert(d1);
}

<div id="d1" value='abcgfsg' onclick="ss('abcgfsg')" style="background-color:#FF0000;">AAAAdAA</div>
<div id="d2" onclick="ss('abfg')" style="background-color:#FFdd00;">BBBBfgBB</div>
<div id="d3" onclick="ss('afdghhg')" style="background-color:#FFdd00;">CCfgfgf</div>
<input type="button" value="show" onclick="show()">
0 请登录后投票
   发表时间:2007-07-03  
不能在div里设置任何可读的属性!要是那样就简单了
<div id="d1" onclick="ss('abcgfsg')" style="background-color:#FF0000;">AAAAdAA</div>
要读取的数据就是这个div onclick函数里的参数
------
只是朋友问我的,他想提取投放在页面中广告的链接,可恶的是这些链接都是绑到函数里的参数
例:<div onmouseover="ss('http://www.cn-blood.com')" onfocus="ss('http://www.cn-blood.com')" style="overflow: hidden; padding-left: 1px; padding-right: 1px;" onclick="go('http://click.narrowad.com/click/click.jsp?parameter=2658184335098578186,3l6n8l1t1.2F2X1h527m4c2639651w7w720F0X138p4t0,6l4n7,0,,2u3l3h3t3X1A,2,X,F1w5.,1299.,o3X9F,k4271,h6m5,4u8l&parameter1=http%3A%2F%2Fwww.cn-blood.com')">
0 请登录后投票
   发表时间:2007-07-03  
<script type="text/javascript">
<!--
function show()
{
	//我偷懒用tagName来获取相应的div,楼主可以用id来获取
	var ds=document.getElementsByTagName('DIV');
	var paras=new Array();
	for(var i=0;i<ds.length;i++)
	{
		paras.push(ds[i].onclick.toString().match(/\'\w+\'/));
	}
	alert(paras);
}
//-->
</script>
0 请登录后投票
   发表时间:2007-07-03  
我想过要是在当前页建立一个ss函数的拷贝 或者别名的函数就好了
可惜我不会 空想 0-0
0 请登录后投票
   发表时间:2007-07-03  
哎呀 楼上的老兄强
toString()还真有用 
谢谢啦!
0 请登录后投票
   发表时间:2007-07-03  
正则看过不少就是不会活用 
再谢谢了
0 请登录后投票
   发表时间:2007-07-03  
以下的解决方案,需要可以把这段代码嵌入到你需要截获的页面中,如果无法这样做,那只能按照之前那位用正则表达式来获取。

var oldSS=ss;
var paramList=[];
/*重写ss函数,用于截获参数*/
ss=function(param) {
    paramList.push(ss);
    oldSS(parma);//oldSS是对原ss函数的引用,执行原来的ss函数
}

function show() {
    var div=....  //获取那几个div;
    for (var i=0;i<div.length;i++) {
       div.click(); //全部click一次,如果可以这样做的话……
    }
    alert(paramList);
}


另外,其实还不明白,你真正的需求
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics