Следующий скрипт выдает сообщение об ошибке:
uncaught exception: [Exception... "Could not convert JavaScript argument arg 0
[nsIDOMHTMLSelectElement.add]" nsresult:
"0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location:
"JS frame :: file:///D:/programming/temp/js_bug/page.html
:: addOption :: line 13" data: no]
Кусок HTML со скриптом:
<form name = "form">
<select name = "select">
</select>
</form>
<script>
//This way of adding an option fails
function addOption(selectElement, optionText)
{
var option = document.createElement("option")
option.text = optionText
selectElement.add(optionText, null);
}
element = document.getElementsByName("select")[0]
addOption(element, "2")
/* This way of adding an option works
option = document.createElement("option")
option.text = "1"
element.add(option, null)*/
</script>
Прокомментированный код работает правильно. Я вижу только разницу между кодом, который работает, и кодом, который не работает - передача объекта DOM в качестве параметра функции.
Я работаю над Firefox 3.6.17