我不想使用javascript调用从KRPANO检索热点。
使用以下内容我检索未定义。
KRPANO XML摘要:
<hotspot name="spot0" style="hotspot_ani_white" ath="-25" atv="-10" />
<hotspot name="spot1" style="hotspot_ani_white" ath="-25" atv="-10" />
通过index.html加载外部javascript文件:
$(function() {
var krpano = $('#krpanoSWFObject')[0];
var spotName = 'spot0';
curSpot = krpano.get(hotspot[spotName]);
console.log(curSpot)
});
欢迎任何帮助。提前谢谢!
答案 0 :(得分:1)
你很接近它。但是我不确定你能不能像你写的那样得到元素。
首先,您应该将KRPano插件作为对象而不是HTML DOM元素:
var myKRPano = $('#krpanoSWFObject'); // First way, no need of "[0]"
var otherKRPano = document.getElementById("krpanoSWFObject"); // Another way
现在你有了JS对象,只需调用“get”方法。但是你应该知道“get()”执行内部代码:因此你必须将你的请求作为字符串放置!例如,使用您自己的代码:
var spotname = "spot0";
var query = "hotspot['"+spotname+"']"; // i.e. "hotspot['spot0']"
var myHotspot = myKRPano.get(query); // or myKRPano.get("hotspot['spot0']");
这将为您提供以下内容:
Object { _type="hotspot", DATA={...}, plugin={...}, plus...}
从那里,你可以要求
> myHotspot.atv
-10.5868612
> myHotspot.name
"spot0"
作为一般建议,在使用KRPano时,请不要犹豫为您的浏览器使用调试工具。然后,您可以直接尝试代码并解决问题。 如果你这样做,你会看到“$('#krpanoSWKObject')。get()”设置为“$('#krpanoSWKObject')[0] .get()”不是。 :)
此致
答案 1 :(得分:0)
通过获取热点应该怎么做?
如果你需要通过javascript获得一些热点属性,你可以在xml &lt;中调用js方法。 action&gt; 标记并直接从xml热点获取属性:
在javascript文件中,获取热点的 ath 和 atv 属性 返回一个数组
function getspotcoords(ath,atv){
var spotcoords = [ath,atv];
return spotcoords
}
在xml中调用&lt;中的函数单击热点时触发的action /&gt; 标记
<hotspot name="myhotspot" onclick="myaction"/>
<action name="myaction">
//js() method is required!
js(getspotcoords(get(hotspot[0].ath), get(hotspot[0].atv)));
</action>
您可以以相同的方式获取热点本身,并将其存储在javascript文件中的变量中。 希望它有效!