2010-07-09 74 views
0

当我看到这个链接的源中,只有这个功能谷歌“改变背景图像”链接如何工作?

javascript:void(0) 

,并没有别的,我找了使用JavaScript:无效(0),但没有在那里用得不多的地方单独。那么秘密是什么?

+0

谷歌是我所见过没有让人们最好的网站的人知道他们是如何做到的东西。他们在这方面非常聪明。 B **** rds – RSM 2010-07-09 07:50:52

+0

哪个链接?你的意思是Google主页吗? – dolmen 2010-07-09 08:21:54

+0

@Dolmen,是的谷歌主页左下角的链接 – stckvrflw 2010-07-09 08:24:53

回答

2

从来源:

<div id=cpf style="display: none; margin: 0 8px; position: relative;"class=fade><a href="javascript:void(0)" style="bottom: 0;display:inline;font-family:arial, san-serif;font-size:small;left:0;position:absolute;">Change background image</a></div> 
..... 
var a=document.getElementById("cpf"); 
..... 
var c=a.getElementsByTagName("a")[0]; 
if(!c.onclick)c.onclick=function(){ 
var d="https://www.google.com/accounts/ServiceLogin?continue\x3dhttp://www.google.com/webhp%3Fhl%3Den%26cplp%3D\x26hl\x3den\x26service\x3dig\x26ltmpl\x3daddphoto"; 
..... 
1

其他地方有一个JavaScript函数附加到onclick事件。下面是一个例子与jquery

$('#linkid').click(function() { 
    window.location.href = 'http://yahoo.com'; 
    return false; 
}); 

因此,有可能附着JavaScript操作到DOM元素。这些javascript函数可以位于其他一些被混淆的文件中,所以不要惊讶你没有找到它。一个好的工具,如FireBug可以帮助你通过JS代码进行调试。

+0

和链接似乎并没有一个ID?我正在用萤火虫看它。这里的#linkid是什么? – stckvrflw 2010-07-09 07:53:28

+0

使用'id'不是查找DOM元素的唯一方法。看看选择器(http://api.jquery.com/category/selectors/)。 – 2010-07-09 07:54:23

+0

@stckvrflw:使用封闭div的id,请参阅我的帖子。 – 2010-07-09 08:10:09

1

确实,jQuery在某处添加了一个onclick事件。在Chrome中,右键点击链接并选择检查元素。在右下角,底部应该有一个叫做事件监听器的部分。这会告诉你发生了什么事。

1
var a=document.getElementById("cpf") 

围绕链接的div具有'cpf'的标识。上面的那个引用了那个。搜索'cpf',你会看到另一个参考。我没有分析过JS如何工作,但这可能是如何引用锚标签的。

编辑:

我使用Web Developer toolbar为Firefox看JavaScript的网页上,用少一点麻烦。