如何使锚标记的 href 调用匿名函数?

How to make an anchor tag's href invoke an anonymous function?

我正在对一个 Internet 论坛进行跨站脚本攻击,可以将链接放入 post 中,例如

[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>

但是没用。

对我有什么建议吗?

使用 IIFE:

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

虽然和不使用 IIFE 的做法没有太大区别,就像顶层 JS 代码一样:

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

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