javascriptkrpano

How to get value from a js function


I'm using the KRPano plugin for street viewer. I've a <hotspot> that needs to show a tooltip with a value when I click on it. That value I need to take it from a JS function. So I added a <style> to my hotspot:

<style name="styletooltips"
    onclick="exhibit(); set(layer[text].html, get(js(getText()))); "           
/>

My js function:

function getText()
{
    return "Hello World!";
}

I tried it that way but I keep getting null. If I take out the getbefore the js it shows literally js(getText()).

P.D: the exhibit() is KRPano action that shows the layer with the tooltip.


Solution

  • I haven't used KRPano very much, nor do I have an enviroment to test atm, but I do believe the get isn't necessary. I believe you would just need to do:

    <style name="styletooltips"
        onclick="exhibit(); set(layer[text].html, js(getText())); "           
    />
    

    If you look in the KRPano documentation, it says the get will try to:

    Resolve the 'variable' to its value.
    

    In this case, there isn't a variable in use, just a method. You should be safe to just call js and use the return (since it is a string literal).

    Edit: I just noticed the parameters list for get, and it makes complete sense for your instance.

    variable (Any Variable):
    When the variable doesn't exists, then get() will return null.
    

    Edit 2: Another option would be to try setting a variable with the value, then passing that. Example:

    <style name="styletooltips"
        onclick="exhibit(); var item = js(getText()); set(layer[text].html, item)); "           
    />