簡體   English   中英

在HTML中調用JavaScript函數

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM