Sven Rautenberg: form.submit() funktioniert nur in opera

Beitrag lesen

Moin!

Warum machst du es dir so kompliziert?

function getState(url, selection){

var form = document.createElement('form');
  var input = document.createElement('input');
  form.method = 'get';
  form.action = url;
  input.type = 'hidden';
  input.name = 'selection';
  input.value = selection;
  form.appendChild(input);
  form.submit();
}

  
Du hast einen GET-Request mit nur einem einzigen Parameter auf eine URL.  
  
Simple Lösung für dieses Problem:  
  
~~~javascript
function getState(url,selection){  
  location.href=url + "?selection=" + encodeURIComponent(selection);  
}

Das ist simpel, leicht verstehbar, wegen des Verzichts auf DOM-Operationen vermutlich auch deutlich performanter, und funktioniert mutmaßlich in deutlich mehr Browsern, als du jetzt getestet hast.

Die Funktion wird mit ein Klick auf ein a-Element per onclick aufgerufen.

Das böte durchaus noch ein paar weitere Ansätze für unobtrusive Scripting, man könnte onclick die URL des Links (mit einer Parametervorbelegung, die dem Ziel Abwesenheit von Javascript signalisiert) mit den passenden Daten versorgen.

- Sven Rautenberg

--
"Love your nation - respect the others."