[英]Calling/Invoking a Javascript function from python a flask function within html
[英]Calling a JavaScript function within HTML
我具有以下功能,该功能是Google Earth API的一部分。 它会在地图上生成图像叠加层,因此必须多次调用。 如何调用此函数并为每个调用赋予唯一的ID? 我想到了这样的事情:
function createScreenOverlay(location, x , y) {
var screenOverlay = ge.createScreenOverlay('');
screenOverlay.setIcon(ge.createIcon(''));
screenOverlay.getIcon().setHref(location);
screenOverlay.getOverlayXY().setXUnits(ge.UNITS_FRACTION);
screenOverlay.getOverlayXY().setYUnits(ge.UNITS_FRACTION);
screenOverlay.getOverlayXY().setX(.5);
screenOverlay.getOverlayXY().setY(.5);
// Set screen position in fractions.
screenOverlay.getScreenXY().setXUnits(ge.UNITS_PIXELS);
screenOverlay.getScreenXY().setYUnits(ge.UNITS_PIXELS);
screenOverlay.getScreenXY().setX(x); // Random x.
screenOverlay.getScreenXY().setY(y); // Random y.
// Rotate around object's center point.
screenOverlay.getRotationXY().setXUnits(ge.UNITS_FRACTION);
screenOverlay.getRotationXY().setYUnits(ge.UNITS_FRACTION);
screenOverlay.getRotationXY().setX(0.9);
screenOverlay.getRotationXY().setY(0.5);
// Rotate by a random number of degrees.
ge.getFeatures().appendChild(screenOverlay);
};
在HTML中有此内容: <p id="campusbutton"><p>
然后在JavaScript部分中再次调用它: document.getElementById("campusbutton").innerHTML=createScreenOverlay(LOCATION, X, Y);
这确实有效,但是它写了“ undefined”,其中<p>
应该是...。显然<p>
是段落标签,这就是为什么打印“ undefined”的原因,但是我还能使用其他标签吗? <div>
由于某些原因无法正常工作。
谢谢!
我不确定您要实现的目标,如果您想使campusbutton
加载您的叠加层,那么您应该使用onclick
类的事件来调用该函数并根据需要传递参数。
<p id="campusbutton" onclick="createScreenOverlay(LOCATION, X, Y)"><p>
因为是这样,所以您正在将campusbutton
元素的innerHTML设置为函数createScreenOverlay
的结果,但是该函数不会返回任何内容,因此将无法使用。
即使函数确实返回了某些内容,例如KmlScreenOverlay
function createScreenOverlay(location, x , y) {
var screenOverlay = ge.createScreenOverlay('');
// rest of your code
ge.getFeatures().appendChild(screenOverlay);
// return the type
return screenOverlay;
};
您campusbutton
innerHTML仍然只是此调用的结果。 哪一个是Object
。
如果要使campusbutton
按钮的innerHTML成为叠加层的实际Kml,则可以修改函数以如上所述返回KmlScreenOverlay
,然后更改调用以将innerHTML设置为对象的kml表示形式。
document.getElementById("campusbutton").innerHTML=createScreenOverlay(LOCATION, X, Y).getKml();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.