Websiteaufruf per JS reagiert anders als per Browser

Sprint

Erfahrenes Mitglied
Hallo zusammen,

ich versuche gerade, einen GoToMeeting Aufruf in unsere Webseite zu integrieren. Dazu gibt der User seine Meeting ID in ein Textfeld ein und schickt das Formular ab. Die Adresse, mit der GoToMeeting aufgerufen wird, lautet: https://gotomeeting.com/join/333699349. (die 333699349 ist eine Test-ID)

Wenn ich diese Adresse direkt im Browser starte, wird die Website aufgerufen, die App gestartet und die ID übergeben. Rufe ich diese Adresse aber über das Formular auf, lande ich auf einer Seite "launch.getgo.com...", die dann zwar auch die App aufruft, ihr aber die ID nicht übergibt, so daß der User sie nochmal eingeben muß.
Ich habe schon verschiedene Methoden ausprobiert, komme aber immer wieder zum selben Ergebnis. Mein letzter Versuch sieht so aus:
Javascript:
function gotom(){
    var meetingid = $('#meetingid').val();
    var url = "https://gotomeeting.com/join/"+meetingid;
    $(location).attr('href',url);
}
Die URL wird korrekt zusammengebaut und doch lande ich auf der "falschen" Seite "launch.getgo.com...".


EDIT: Ich habe inzwischen herausgefunden, daß ich die richtige Seite bekomme, wenn sie über einen echten Link aufgerufen wird. Die eingegebenen Daten einzutragen ist auch nicht das Problem.

Javascript:
function gotom(gotoid){
   $("#gotourl").prop("href", "https://gotomeeting.com/join/"+gotoid);
}

Nur läßt sich ein Link ja nicht wie ein Button deaktivieren und das ist erwünscht, da der User erst die Nutzungsbedingungen akzeptieren muß. Und auch eine Kombination aus Link und Button funktioniert nicht, ist immer anklickbar.

Wo ist der Unterschied, ob ich die URL in die Adressenzeile des Browsers eingebe oder über HTML oder JS aufrufe? Kann mir das einer erklären und evtl. eine Lösung aufzeigen?

Danke schon mal im Voraus,
Sprint
 
Zuletzt bearbeitet:
Code:
$(location).attr('href',url);
attr kenne ich nur von DOM-Elementen, fraglich, was das bei location bewirkt. Hast Du schon die althergebrachte und bewährte Methode versucht:
location.href = url;
 
Ja, hatte ich auch schon versucht. Ich glaube, ich habe schon so alles durch, was JS mit URLs anstellen kann. Es ist immer das selbe Ergebnis. Aus irgendeinem Grund funktioniert es nur als Link richtig.
 
Für das eigentliche Problem habe ich jetzt eine Lösung gefunden:

HTML:
<input id="gtmcheckbox" type="checkbox" name="gtmcheckbox" value="1" onchange="online_accept()" />
<label for="gtmcheckbox" class="control__label formcheckbox" style="margin-bottom: 5px;"> Ich stimme den Bedingungen zu</label>
<input type="text" id="meetingid" size="9" minlength="9" maxlength="9" value="" placeholder="Meeting ID" disabled onkeyup="gotom(this.value)" />
<a href="#" id="gotourl" class="button" target="_self">Teilnehmen</a>
Javascript:
function online_accept() {
    if ($("#gtmcheckbox").prop("checked")){
        $('#gotourl').prop('target', '_blank');
        $("#meetingid").prop('disabled', false);
    }else{
        $('#gotourl').prop('href', '#');
        $('#gotourl').prop('target', '_self');
        $("#meetingid").val('');
        $("#meetingid").prop('disabled', true);
    }
}
function gotom(gotoid){
    $("#gotourl").prop("href", "https://gotomeeting.com/join/"+gotoid);
}
Das Textfeld wird deaktiviert, wenn die Zustimmung nicht erteilt wurde und per JS wird die Eingabe in das Textfeld an die URL angehängt und als href eingetragen. Nicht unbedingt die eleganteste Weise, aber es funktioniert wenigstens. Es bleibt aber immer noch die Frage, warum da ein so großer Unterschied zwischen Link und JS-Aufruf ist.
 
Zurück