2015-11-04 84 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> 

唯一顯著的區別是,你可以在函數內聲明局部變量。