In ZK framework, inside zul file i want to call javascript function but it does not happens.
<a label="Click" onClick="popUp();">
I have that popUp() function also. But when I click on
<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>
But when I click on that link it dispalys following error:
Sourced file: inline evaluation of: `` popUp();'' :
Command not found: popUp() : at Line: 13 :
in file: inline evaluation of: `` popUp();'' : popUp ( )
In ZK framework, inside zul file i want to call javascript function but it does not happens.
<a label="Click" onClick="popUp();">
I have that popUp() function also. But when I click on
<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>
But when I click on that link it dispalys following error:
Sourced file: inline evaluation of: `` popUp();'' :
Command not found: popUp() : at Line: 13 :
in file: inline evaluation of: `` popUp();'' : popUp ( )
Share
Improve this question
edited Dec 13, 2012 at 6:56
akjoshi
15.8k13 gold badges106 silver badges122 bronze badges
asked Dec 13, 2012 at 6:35
Narayan SubediNarayan Subedi
1,3432 gold badges21 silver badges46 bronze badges
3 Answers
Reset to default 8To solve this problem I found below way:
<a label="Click" xmlns:w="http://www.zkoss/2005/zk/client" w:onClick="createPopUp('http://www.facebook./prabhatsubedi');"/>
As an alternative, if you want to achieve this in java, rather than .zul file, you can use
label.setWidgetListener(Events.ON_CLICK, "popUp();");
as indicated here with javadoc
As another alternative, it's also possible to call Javascript code from the server side using Clients.evalJavaScript
. So you would place it in an event listener.
Example
Java:
@Command
public void createPopUp() {
Clients.evalJavaScript("createPopUp('http://www.facebook./prabhatsubedi');");
}
Zul:
<a label="Click" onClick="@mand('createPopUp')">
Addendum to @Narayan-Subedi's answer
You can declare the client namespace once at the top of your file and use it multiple times:
<zk xmlns:n="native" xmlns:c="client">
<a label="Click" c:onClick="createPopUp('http://www.facebook./prabhatsubedi');"/>
</zk>