Browser-inkompabilitet i javascript
Hey...Jeg har et problem med mit javascript... Det virker fint i Internet Explorer, men Mozilla Firefox giver flg. fejl "sel has no properties" - hvad kan det skyldes?
Fejlen opstår når jeg kører:
createOpts(document.getElementById('hovedkategori'));
hovedkategori er en dropdown-boks (select-tag)
koden er her:
<script language="javascript" type="text/javascript">
var arr = [
["ADMIN", [
["BILBASER",
[]],
["BILMÆRKER",
["Alfa-Romeo",
"Audi",
"BMW",
"Chevrolet",
"Chrysler",
"Citroën",
"Daewoo",
"Ferrari",
"Fiat",
"Ford",
"Honda",
"Hyundai",
"Jaguar",
"Kia",
"Land-Rover",
"Lexus",
"Lotus",
"Mazda",
"Mercedes",
"MG",
"MINI",
"Mitsubishi",
"Morgan",
"Nissan",
"Opel",
"Peugeot",
"Renault",
"Rover",
"SAAB",
"Seat",
"Skoda",
"Subaru",
"Suzuki",
"Toyota",
"Volvo",
"VW"
]],
["FORHANDLERE",
[]],
["REKLAME 1",
["nolink"
]],
["REKLAME 2",
["nolink"
]],
["REKLAME 3",
["nolink"
]],
["REKLAME 4",
["nolink"
]],
["REKLAME 5",
["nolink"
]],
["SERVICE",
["AutoMester",
"CAD",
"Chips Away",
"Din Bil Partner",
"test 1",
"test 2",
"test3"
]],
["SPONSORLINKS",
["Autocom - Bilauktion",
"Bilbasen - Bilsøgning",
"Robinhus - Salg & Køb"]]
]],
["BRUGER", [
["HØJRE",
["info 9",
"sfsfsfsdfsdf"
]],
["MIDT",
["45454454",
"dafewtfdfath",
"hhh"
]],
["VENSTRE",
["adgsdgds",
"Test 1",
"test 2",
"test 312",
"test 6",
"test 7"]]
]],
["KAT1", [
]],
["KAT2", [
]],
["KAT3", [
]],
["KAT4", [
]],
["KAT5", [
]]
];
function createOpts(sel){
var s = new Array();
var num = 0, txt = "arr";
var ar = opt = null;
var n = sel.selectedIndex;
var args = createOpts.arguments.length;
for(var i=1;args>i;i++){
s[i-1] = document.getElementById(createOpts.arguments[i]);
if(s[i-1]==sel)num=i;
}
if(args>1){
if(s[num])sel = s[num];
else return;
}
if(n==0&&args>1){
for(i=num;args>i+1;i++){
s[i].length = 0;
opt = document.createElement('OPTION');
s[i].appendChild(opt);
opt.value = "";
opt.text = "74-- Vælg --";
}return true};
for(i=0;num>i;i++){
txt+="["+(s[i].selectedIndex-1)+"][1]";
}
ar = eval(txt);
sel.length = 0;
opt = document.createElement('OPTION');
sel.appendChild(opt);
opt.value = "";
opt.text = "-- Vælg --";
for(i=0;ar.length>i;i++){
opt = document.createElement('OPTION');
sel.appendChild(opt);
if(typeof ar[i] == 'object'){
opt.value = ar[i][0];
opt.text = ar[i][0];
}else{
opt.value = ar[i];
opt.text = ar[i];
}}
if(args>num+2){
for(i=num+1;args-1>i;i++){
s[i].length = 0;
opt = document.createElement('OPTION');
s[i].appendChild(opt);
opt.value = "";
opt.text = "74-- Vælg --";
}}}
</script>
På forhånd tak!