Ну, я провел некоторое тестирование, и я считаю, что IE считает массив опций неизменным (в некотором смысле). Вы можете редактировать параметры и удалять их, но нельзя установить один параметр для другого.
Итак, когда вы делаете это:
shippingLocation.options[0] = swap;
IE жалуется, потому что вы пытаетесь установить один параметр на другой.
Я бы сделал это вместо:
> Removed due to excessive stupidity on
> my part. :P
Вот лучший способ:
<script type="text/javascript">
function swap(obj,i,j) {
sib=obj.options[i].nextSibling;
obj.insertBefore(obj.options[i],obj.options[j]);
obj.insertBefore(obj.options[j],sib);
}
</script>