[英]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.