gpt4 book ai didi

javascript - 从脚本标记中的文本区域评估 Google Earth 代码

转载 作者:行者123 更新时间:2023-11-28 07:03:13 24 4
gpt4 key购买 nike

我已经有了这段代码,我必须让它在没有文本区域的文本的情况下工作。因此,在文本区域中编写的代码应该在脚本标记中并且它应该可以工作。任何人都可以帮助我,因为我真的不知道 eval(document.getElementById('code').value 是如何工作的,所以我不知道如何集成它。这是我正在谈论的代码:

<html>
<head>
<title>GEarthExtensions Samples - Drawing an extruded polygon</title>
<script src="http://www.google.com/jsapi?key=ABQIAAAAsc0UQXoo2BnAJLhtpWCJFBTgHOxFyKCf35LCvsI_n4URElrkIhS9MkSlm_0NZWgrKFkOsnd5rEK0Lg" type="text/javascript"></script>
<script src="extensions-0.2.1.pack.js" type="text/javascript"></script>
<script type="text/javascript">
/* <![CDATA[ */

var ge = null;
var gex = null;

google.load('earth', '1');

google.setOnLoadCallback(function() {
google.earth.createInstance('map3d', function(pluginInstance) {
ge = pluginInstance;
ge.getWindow().setVisibility(true);

gex = new GEarthExtensions(pluginInstance);

//gex.util.lookAt([0, 0], { range: 800000, tilt: 65 });

}, function() {});
});


/* ]]> */
</script>
</head>
<body>
<div id="map3d_container" style="width: 500px; height: 500px;">
<div id="map3d" style="height: 100%"></div>
</div>
<textarea id="code" style="font-family: monospace; width: 500px; height: 200px;">
gex.dom.clearFeatures();

var placemark = gex.dom.addPlacemark({
polygon: {
polygon: [],
extrude: true,
altitudeMode: geo.ALTITUDE_ABSOLUTE
},
style: {
line: { width: 0 },
poly: '#ff0'
}
});

var coords = placemark.getGeometry().getOuterBoundary().getCoordinates();

gex.edit.drawLineString(placemark.getGeometry().getOuterBoundary(), {
drawCallback: function(coordIndex) {
var coord = coords.get(coordIndex);
coords.setLatLngAlt(coordIndex,
coord.getLatitude(), coord.getLongitude(), 100000);
}
});
</textarea><br/>
<input type="button" onclick="eval(document.getElementById('code').value);" value="Run"/>
</body>
</html>

最佳答案

要运行script标签中的代码,您需要先解析它。 DOMParser 是一个很好的工具:

function run(value) {
var parser = new DOMParser();
var doc = parser.parseFromString(value,"text/html"); // create DOM from value
var code = doc.getElementsByTagName("script"); // get script tags from that DOM
if(!code.length) eval(value); // no script tag, eval the value directly
else eval(code[0].innerText); // eval the text from the first script tag
}

测试 HTML 代码

<textarea id="code">
<script>
alert("hello");
</script>
</textarea>
<button onclick="run(document.getElementById('code').value)">Run</button>

关于javascript - 从脚本标记中的文本区域评估 Google Earth 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31914214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com