ZK - Open Source Ajax Java FrameworkZK - Open Source Ajax Java Framework

Detecting Adobe PDF plugin using zk

jaikarthik
11 Mar 2010 00:32:40 GMT
11 Mar 2010 00:32:40 GMT

Hi all

I'm trying to open pdf in web browser using ZK. I want to detect if Adobe plugin is available in the browser. I searched and found many working samples to do this in JavaScript but couldn't find any material to do it in zscript :( . can any one help me with material to do this and any sample code would be very much appretiated.

Regards
Jaikarthik

PeterKuo
11 Mar 2010 03:16:34 GMT
11 Mar 2010 03:16:34 GMT

To run javascript in browser, you have to use <script>, not <zscript>

You may refer to
http://docs.zkoss.org/wiki/ZK_5.0_and_jQuery
http://docs.zkoss.org/wiki/ZK_5.0_and_jQuery_part_2

jaikarthik
13 Mar 2010 13:06:37 GMT
13 Mar 2010 13:06:37 GMT

I have written java script for checking plugin and its working fine.. but i'm not able to access result of the validation in my zul file.. is there a way to return value from javascript to zscript ?


can anyone tell me how i can access navigator object inside zscript ?

i wrote the following code

<?page zscript-language="javascript"?>
<window id="window" title="">
<zscript>

function detectadobe(){
var acrobat=new Object();


acrobat.installed=false;
acrobat.version='0.0';
acrobat.ok=false;

if (navigator.plugins && navigator.plugins.length){
for (x=0; x<navigator.plugins.length; x++){
if (navigator.plugins.description.indexOf('Adobe Acrobat') != -1){
acrobat.version=parseFloat(navigator.plugins.description.split('Version ')[1]);
if (acrobat.version.toString().length == 1)
acrobat.version+='.0';
acrobat.installed=true;
// Verify whether Acrobat Plug In installed is for Version 7 or above
acrobat.ok=(acrobat.installed && parseInt(acrobat.version) >= 7) ? true:false;
if(acrobat.ok){
window.title="got it";
}
break;
}
}
}
}
</zscript>
<button label="button">
<attribute name="onClick">
detectadobe();
</attribute>
</button>
</window>


i get the following error

org.zkoss.lang.SystemException: org.xml.sax.SAXParseException: Element type "navigator.plugins.length" must be followed by either attribute specifications, ">" or "/>".
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
org.zkoss.lang.Classes.newInstance(Classes.java:78)
org.zkoss.lang.Exceptions.wrap(Exceptions.java:164)
org.zkoss.lang.SystemException$Aide.wrap(SystemException.java:47)
org.zkoss.util.resource.ResourceCache.get(ResourceCache.java:149)
org.zkoss.web.util.resource.ResourceCaches.get(ResourceCaches.java:131)
org.zkoss.zk.ui.metainfo.PageDefinitions.getPageDefinition(PageDefinitions.java:142)
org.zkoss.zk.ui.impl.AbstractUiFactory.getPageDefinition(AbstractUiFactory.java:115)
org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:222)
org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:166)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

org.xml.sax.SAXParseException: Element type "navigator.plugins.length" must be followed by either attribute specifications, ">" or "/>".
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1411)
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1391)
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:269)
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2747)
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
javax.xml.parsers.SAXParser.parse(SAXParser.java:331)
org.zkoss.idom.input.SAXBuilder.build(SAXBuilder.java:293)
org.zkoss.zk.ui.metainfo.Parser.parse(Parser.java:102)
org.zkoss.zk.ui.metainfo.PageDefinitions$MyLoader.parse(PageDefinitions.java:196)
org.zkoss.web.util.resource.ResourceLoader.load(ResourceLoader.java:94)
org.zkoss.util.resource.ResourceCache$Info.load(ResourceCache.java:219)
org.zkoss.util.resource.ResourceCache$Info.<init>(ResourceCache.java:193)
org.zkoss.util.resource.ResourceCache.get(ResourceCache.java:134)
org.zkoss.web.util.resource.ResourceCaches.get(ResourceCaches.java:131)
org.zkoss.zk.ui.metainfo.PageDefinitions.getPageDefinition(PageDefinitions.java:142)
org.zkoss.zk.ui.impl.AbstractUiFactory.getPageDefinition(AbstractUiFactory.java:115)
org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:222)
org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:166)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


if i use alert(navigator); i'm getting ReferenceError: "navigator" is not defined

jaikarthik
13 Mar 2010 16:07:03 GMT
13 Mar 2010 16:07:03 GMT

I'm using zk 3.5.1

jumperchen
14 Mar 2010 20:53:41 GMT
14 Mar 2010 20:53:41 GMT

Please refer to the How-to.