Det lykkedes mig selv at finde en løsning. Den er ikke køn men det virker, så her kommer den.
Safari har tilsyneladende en anden måde at håndtere bubbling på end FF og IE. Hvor FF og IE afvikler den tilskrevede submitfunktion først dvs. autoCoRegEngine.submitActionFunction gør Safari det omvendt og starter med den oprindelige submitfunktion. Derfor skal skal vi have stoppet den først og efterfølgende have kørt vores eget hvorefter vi kan submitte den originale submit til sidst.
if (navigator.userAgent.indexOf("Safari") != -1)
{
setTimeout('autoCoRegEngine.submitAction()', 500);
return false;
}
Vi fortælle at vi ønsker at kører vores submitAction om et halvt sekund og returnerer false for at stoppe den oprindelige submit.
Når vi har kørt vores jQuery('#autoCoRegEngineSubmitter').submit(); skal vi sørge for at kører det oprindelige igen ved at bede om en ny funktionskørsel efter submit setTimeout('autoCoRegEngine.submitMainFormForSafari()', 655);. Bemærk ventetiden da vi ønsker at sikre os at dataene er kommet igennem inden vi submitter den originale. Vi returnerer true for at submitte vores egen form.
For at få kørt det originale submit skal vi simulere et klik. Det gøres således:
var forms = document.getElementsByTagName('form');
for (var i = 0; i < forms.length; i++)
{
var input = forms[i].getElementsByTagName('input');
for (var j = 0; j < input.length; j++)
{
if (input[j].type.toLowerCase() == 'submit')
{
input[j].click();
}
}
}