Javascript を使用する HTML ページがあり、IE では問題なく動作しますが、Firefox、Chrome、または Safari ではうまく動作しません。私のコードは IE のドロップダウンにデータを動的に追加しますが、私の構文は FF、Chrome、または Safari に対して適切ではないと思いますか? FF、Chrome、Safari では、ドロップダウン ボックスにはハードコードされた値のみが表示され、前述の 3 つのブラウザーでは更新されません。私の配列がFFまたはChromeで正しく入力されていると仮定すると、ドロップダウンボックスにデータを追加するために使用している方法が、FFまたはChromeが好む方法で書かれていないと思いますか?
<script type="text/javascript">
dojo.require("esri.map");
dojo.require("esri.tasks.route");
dojo.require("esri.tasks.query");
var dynamicarray = [];
queryTask.execute(query, showResults);
function showResults(results) { //This is where I can add values to dropdown in IE
var featureAttributes;
var addoffices = document.getElementById("Office");
var addrigs = document.getElementById("Rigs");
for (var i = 0, il = results.features.length; i < il; i++) {
featureAttributes = results.features[i].attributes;
for (att in featureAttributes) {
dynamicarray.push(featureAttributes[att]);
if (isNaN(featureAttributes[att])) {
addrigs.options.add(new Option(featureAttributes[att], att));
}
if (isNaN(featureAttributes[att])) {
addoffices.options.add(new Option(featureAttributes[att], att));
}
}
}
}
function officeval() {
d = document.getElementById("Office");
var de = d.options[d.selectedIndex].text;
addStop(de);
}
function addStop(evt) {
var lat;
var lon;
var dar;
for (dar in dynamicarray) {
if (dynamicarray[dar] == evt) {
lon = dynamicarray[dar - 1]; //Get Longitude value
lat = dynamicarray[dar - 2]; //Get Latitude value
var inPoint = new esri.geometry.Point(lon, lat, map.spatialReference);
var stop = map.graphics.add(new esri.Graphic(inPoint, stopSymbol));
routeParams.stops.features.push(stop);
map.graphics.add(new esri.Graphic(new esri.geometry.Point(lon, lat, map.spatialReference), textSymbol));
break;
}
}
}
</script>
From:
<SELECT id="Office" SIZE=0 onchange="officeval()">
<OPTION VALUE="0">
<OPTION VALUE="1"> Some Office
<OPTION VALUE="2"> Warehouse Yard
</SELECT>