2015-11-04 61 views
2

我工作在一个互联网论坛,链接可以放在后像如何让锚标记的href调用一个匿名函数?

[url]http://google.com[/url] 

然后把它论坛的线程上浮出水面

<a href="http://google.com">http://google.com</a> 

跨站点脚本攻击。如果可能的话,我想用通过href调用JavaScript函数的技术,即

<script type="text/javascript"> 
    function sayHello () 
    { 
     alert("Hello"); 
    } 
</script> 
<a href="javascript:sayHello()">Clicking here alerts "Hello"</a> 

但因为我没有使用预定义的JavaScript函数的任何方式,我想,如果我可以把匿名函数在那里,例如

<a href="javascript:function(){alert('Hellow');}">Clicking here alerts "Hello"</a> 

我在记事本简单的页面

<html> 
    <head> 
    </head> 
    <body> 
     <div> 
      <p>Clicking on <a href="javascript:function(){alert('Hello');}">this</a> will alert "Hello""</p> 
     </div> 
    </body> 
</html> 

测试了这一点,但没有奏效。

对我有何建议?

+0

将一个IIFE放入'href'中。 – Barmar

+0

如果你不知道IIFE是什么,那么你不是一个真正的Javascript编码器。 – Barmar

+0

@Barmar尝试了'javascript:(function(){alert('Hello');}())'它工作!谢谢! –

回答

2

使用IIFE

<a href="javascript:(function(){stuff to do})()">Click here</a> 

虽然有不这样做没有IIFE,就像顶级的JS代码相差太多:

<a href="javascript:stuff to do">Click here</a> 

唯一显著的区别是,你可以在函数内声明局部变量。