如何在ZK中调用javascript函数

Nar*_*edi 10 javascript zk

在ZK框架中,在zul文件中我想调用javascript函数但它不会发生.

<a label="Click" onClick="popUp();">
Run Code Online (Sandbox Code Playgroud)

我也有popUp()函数.但是当我点击时

<script type="text/javascript">
    function createPopUp(url)
    {
        var w = 600;
        var h = 500;
        var left = (screen.width/2)-(w/2);
        var top = (screen.height/2)-(h/2);
        window.open(url,'name','scrollbars=yes,width='+w+', height='+h+', top='+top+', left='+left);
    }
</script>
Run Code Online (Sandbox Code Playgroud)

但是,当我点击该链接时,它显示以下错误:

Sourced file: inline evaluation of: `` popUp();'' : 
Command not found: popUp() : at Line: 13 : 
in file: inline evaluation of: `` popUp();'' : popUp ( ) 
Run Code Online (Sandbox Code Playgroud)

Nar*_*edi 7

为了解决这个问题我在下面找到了方法:

<a label="Click" xmlns:w="http://www.zkoss.org/2005/zk/client" w:onClick="createPopUp('http://www.facebook.com/prabhatsubedi');"/>
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,你可以使用像`xmlns:w ="client"`这样的快捷方式而不是完整的网址 (4认同)

asy*_*ard 1

作为替代方案,如果您想在 java 而不是 .zul 文件中实现此目的,您可以使用

label.setWidgetListener(Events.ON_CLICK, "popUp();");
Run Code Online (Sandbox Code Playgroud)

javadoc所示​