繁体   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