• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Externen Link per JS auslösen

Eric March

Neues Mitglied
Hallo!

Vermutlich sehe das Einfachste nicht und bediene Google falsch.
Und gleich einleitend, es geht nicht um eine fest programmierte Homepage deren Herr ich wäre sondern um frisch von einem Tool generierten Code den man weitgehend schlucken und verdauen muss wie er kommt (und es sind Nichtprogrammierer die das Tool einsetzen).

Die Lage ist, dass ich ein FORM-Tag mit einem INPUT vom Typ Submit triggern muss. Dieses INPUT-Tag wird auf bestimmte Weise von CSS kontrolliert. Und da es da auch um Optik geht ist an dieser Stelle nicht leicht einzugreifen.
Die Verwendung vom A-Tag beispielsweise ist wegen CSS nicht zu machen weil die CSS-Quelldatei eine globale ohne Spezialisierungen sein soll und je mehr Umstände desto hilfloser die Laien… Lieber unelegant herumreparieren als tolle Lösungen die nicht durchschaut werden.

Freundlicherweise löst so eine FORM auch immer eine Prüfroutine aus - JavaScript. Und dort kann man angreifen: statt der Prüfung wird der Link nach extern ausgelöst und das Problem ist gelöst.
Ohne CSS war das einfach, der Input war eine Grafik und die konnte den mühelos als Optik eines gewöhnlichen A-Tags komplett ersetzen; raus ist raus, das hat der Laie noch mitgemacht.

Wie löse ich innerhalb von JS einen schnöden, gewöhnlichen Link aus?

Eric March
 
Aha. Und wie geht «Eventhandler und redirect»? (Nein, keine Formulardaten, nur ein simpler Link.)

Falls der Eventhandler z.B. ein onclick() sein möge - …onClick='javascript:MachMalWas(4,1)'… - dann ist das obsolet da die FORM bereits ›ihre‹ JS-function triggert. (Wäre Verschwendung das nicht auszunutzen, dann muss ich nur was ändern.)

«Übersetze „Ich fahre ein Auto“ ins Englische → “I drive a car”»
Wie übersetze ich «<a href="http://www.hierhin.de"></a>» in JavaScript? Da verlange ich nicht mal den Text der sonst ausgegeben wird, und das Anklicken ist ja schon gemacht.

Eric March
 
Weißt… «Google gefälligst selbst danach» sind Forenhilfen auf die ich verzichten kann. Wenn man zu faul ist seine Vorschläge zu erklären und zu begründen braucht man sie auch gar nicht zu geben.
«Ungefähr 45'300'000 Ergebnisse (0.23 Sekunden)» - wie viele davon soll ich durchtesten bis ich den erwische der gemeint war?

Eric March


PS: window.location scheint nicht zu funktionieren.
HTML:
  function MachMalWas(Paramter) {
  alert("Weiter1");
  window.location.href="http://www.google.de";
  alert("Weiter2");
  return true }
Das sagt 2x Ping denndie window.location vor dem 2. Ping findet [in meiner Testumgebung] nicht statt.
Das hatte ich in Varianten schon probiert. »Redirect« ist für mich «<meta http-equiv="refresh" content="0; URL=http://www.bing.com/">»
 
Zuletzt bearbeitet:
Dann solltest du dir ein anderes Hobby suchen. Selbst Programmierer mit langjähriger Erfahrung verbringen einen Teil ihrer Zeit damit, bei Google nach Lösungen zu forschen.
 
Warum wohl frage ich in einem Forum? Weil Google nichts genützt hatte. Aber das stand ja schon ganz oben.
Eric March
 
Natürlich führt window.location.href einen Redirect aus. Das kannst du ganz einfach in der Konsole testen. Falls es auf deiner Seite nicht funktioniert hat das Gründe, die sich aus den von dir gegebenen Infos nicht beantworten lassen.
 
Weil die (nicht: meine) Konstruktion anders tickt als üblich?
Wenn das hilft, wir (nicht Hobby…) testen den GTM, und de kann aus diese maschinengeneriereten Page nicht feuern.
Wenn es einen anderen Code gibt der eine Fremdlink auslöst wäre das der nächste Versuch.

Ansonsten sitze ich leidlich in der Kemme. Dann hier die Frage: wie formuliere ich
<INPUT Type="submit" id="ContinueButton" Value="Continue">
in etwas enaus felxibles um das einen normale A-Tag auslöst oder »damit kann«? Braun das was CSS betrifft, Grün - der geniale Vorzug gegenüber einer Grafik - der Fließtest des Buttons den Laien laicht anpassen können.

Soweit für Heute,
Eric March
 
Weil die (nicht: meine)

Ansonsten sitze ich leidlich in der Kemme. Dann hier die Frage: wie formuliere ich
<INPUT Type="submit" id="ContinueButton" Value="Continue">
in etwas enaus felxibles um das einen normale A-Tag auslöst oder »damit kann«? Braun das was CSS betrifft, Grün - der geniale Vorzug gegenüber einer Grafik - der Fließtest des Buttons den Laien laicht anpassen können.

Soweit für Heute,
Eric March

a) Das <input type="submit"> ruft im Normalfall per HTML die im Action-Attribut des Formulars angegebene URL auf und ignoriert dabei dein JavaScript. Um das zu unterbinden, musst du bei Verwendung von jQuery ein event.preventDefault() oder bei Vanilla JS return false in die Funktion schreiben.

b) Flexibel bedeutet, dass du eine if-Bedingung innerhalb der Funktion definierst, die zwischen unterschiedlichen Fällen entscheidet. Bei true wird der Submit geblockt und auf eine andere URL redirected und bei False lässt du ihn durchgehen.

Also entweder Grundlagenkenntnisse erwerben, das kann dir dieses Forum nicht abnehmen, oder in der Jobbörse anfragen.
 
dann ist das obsolet da die FORM bereits ›ihre‹ JS-function triggert. (Wäre Verschwendung das nicht auszunutzen, dann muss ich nur was ändern.)
Hast Du Zugriff auf diese JS-Funktion? Wenn ja, sehe ich nicht, warum es mit window.location.href nicht funktionieren sollte. Hast Du dich davon überzeugt, dass diese Funktion triggert? Poste doch mal ihren Code einschl. deiner Erweiterung.
 
a) Das <input type="submit"> ruft im Normalfall per HTML die im Action-Attribut des Formulars angegebene URL auf
Was sind wir schlau.
Um unten vorzugreifen: ich weiß weiß ein wenig mehr als du über die Lage in der ich mich hier befinde. Diese URL ist das erwähnte Tool das die Pages generiert - aus Rohpages die es vorher offline generiert hat. Und diese Form ruft zusätzlich einen JS-Block auf.
Was sich die hier als Eckdaten gebe, das musst du hinnehmen wie ich es gebe, denn dem ist nicht auszuweichen, von mir nicht und von dir nicht. Danach muss die Lösung erfolgen

b) Flexibel bedeutet
überhaupt nichts da ich das Wort nicht in den Mund genommen habe.
Und nochmals, das ist nix mit IF. FORM außen rum, INPUT das die triggert, URL ist eine Exe auf einem WIN-Server und es wird (netterweise) ein JS-Block ausgelöst. Und in dem will ich kalt und unbarmherzig eine stinknormalen Link nach draußen auslösen.

Also entweder Grundlagenkenntnisse erwerben, das kann dir dieses Forum nicht abnehmen, oder in der Jobbörse anfragen.
Dann lerne du mal einfach Fragen zu lesen und zu beanworten statt dich als Oberlehrer aufzuspeilen… (K.A. wie viel EDV du hinter dir hast, aber denk nicht du hast einen ungelernten Trottel vor dir)
…vor allem wenn dir nicht alle Fakten bekannt sind die mit hineinspielen (und die ich dir nicht nennen muss & darf). Du hast nämlich alle erforderlichen Infos bekommen die du brauchst. Und du hast kläglich versagt eine einfache Codezeile als Lösung anzubieten.

E.M.


Hast Du Zugriff auf diese JS-Funktion? Wenn ja, sehe ich nicht, warum es mit window.location.href nicht funktionieren sollte. Hast Du dich davon überzeugt, dass diese Funktion triggert? Poste doch mal ihren Code einschl. deiner Erweiterung.
Ich habe Zugriff auf diese JS, die Teil der Page ist und die «aus der Maschine stammt». Die Funktion triggert (sie wird getriggert, durch die FORM) und das Stückchen oben zeigt das ganze Dilemma.

Auch window.location.href arbeit nicht, und dabei liegt dieses Beispiel lokal als simples File vor. Das Snipplet des GoogleTrackingManagers feuert lokal (bzw. wenn das file ›direkt‹ auf dem Server aufgerufen wird), nicht aber innerhalb der vom Tool (in o.g. URL der Form) geparsten und ausgeworfenren, live angzeigten Page (obwohl der Code der selbe ist & bleibt).

Wenn window.location.href und Verwandte nicht arbeitet muss das einen seltsamen Grund haben. Wenn es keine Alternative gibt sitze ich ziemlich in der Tinte und muss (selten, zum Glück) mit Holzhammermethode arbeiten: Taste vorbereiten, Screenshot, als Grafik einbinden - und das wäre äußerst lästig.

Eric March
 
Ich fasse zusammen du bist nicht fähig deine Arbeit, für die du jeden Monat bezahlt wirst auzuführen und wir sollen Schuld sein, weil wir dir für lau keine Lösung bieten die einfach so funktioniert. Das alles noch ohne den Code zu kennen der involviert ist.

Solche Leute braucht die Welt! Top!
 
Zuletzt bearbeitet:
ch fasse zusammen du bist nicht fähig deine Arbeit, für die du jeden Monat bezahlt wirst auzuführen und wir sollen Schuld sein, weil wir dir für lau keine Lösung bieten die einfach so funktioniert. Das alles noch ohne den Code zu kennen der involviert ist.

Solche Leute braucht die Welt! Top!

Ich arbeite. An Dingen die dich nichts angehen müssen. Die mehr als diese Kleinigkeit umfassen. Die nicht erlauben alle Sprachen zu können. Im Gegensatz zu dir weiß ich also nicht alles. Ich in aber intelligent und frage. Und in anderen Foren antworte ich. Für lau. Vielleicht weißt du das nicht, aber genau so funktionieren Foren: kleine Lösungen für lau anderen aus Altruismus anbieten.
Du erweist dich asl unfähig mit gegebenen Infos klarzukommen obwohl diese vollkommen genügen, die weiteren außen rum gehen dich aicht auch nur einen Millimeter an. Du wirfst mit Weisheiten um dich ohne einfachste Lösungsvorschläge aus deinem überragenden Wissen auch nur anzubieten, also ganeu dem was man in Foren nicht gebrauchen kann.

«Solche Leute braucht die Welt! Top!»
 
Dann lerne du mal einfach Fragen zu lesen und zu beanworten statt dich als Oberlehrer aufzuspeilen… (K.A. wie viel EDV du hinter dir hast, aber denk nicht du hast einen ungelernten Trottel vor dir)
…vor allem wenn dir nicht alle Fakten bekannt sind die mit hineinspielen (und die ich dir nicht nennen muss & darf). Du hast nämlich alle erforderlichen Infos bekommen die du brauchst. Und du hast kläglich versagt eine einfache Codezeile als Lösung anzubieten.

Ahso, ich habe kläglich versagt. Was qualifiziert dich eigentlich für kostenlosen Support, dein freundlicher Umgangston oder die Goldmember-Card? Schon deine Formulierungen bei der Problembeschreibung zeugen davon, dass dir der technische Background fehlt. Du hast ja nicht mal verstanden, wie man in Programmierforen vorgehen muss, um konkrete Hilfe zu bekommen.

Bei dir paaren sich Dummheit mit Arroganz, und nach diesem Auftritt kannst du deinen Forenaccount direkt schließen. Du wirst hier wohl kaum noch Unterstützung erhalten.
 
Was mich qualifiziert? «Wie du in den Wald rufst…»
Ich formuliere ein Frage und bekomme von dir, statt einer einfachen Antwort oder eines hilfreichen Vorschlags, nette Dinge an den Kopf geworfen. Wenn du meinst, dass du das mit Leuten tun musst die ein gewisse EDV-Karriere hinter sich haben (mit anderen Schwerpunkten denn der Syntax jeder Sprache die sie täglich so nicht brauchen) dann du das. Aber wundere dich nicht über Gegenwind.
Wie gesagt, dir ist offensichtlich fremd wie Foren sonstwo auf der Welt funktionieren. Da ist bedauerlich.

Zur Lösung
Das Problem ist in der Tat das Tool selbst das selbst hierbei, bei GooleTagManger und sogar schnödem MouseOver mit viel Bildern einfach nur Mist auswirft.
Die Lösung war im FORM-Tag das POST-Kommando zu entfernen und dann dich erfolgreich zu Ziel-URL dort unterzubringen. Das merkt man eben immer erst nach reichlichen Fehlvesuchen.
Demnach sollte die angebotene Syntax um «window.location.href» funktionieren. Blind, wie ich war, sah ich in einem Besispiel vor Ort die Syntax «document.location =» nicht mit der ebenfalls eine andere URL aufgerufen werden kann. Unter der Fuchtel des Tools versagt sie indes ebenfalls.
 
Zur Lösung
Das Problem ist in der Tat das Tool selbst das selbst hierbei, bei GooleTagManger und sogar schnödem MouseOver mit viel Bildern einfach nur Mist auswirft.
Die Lösung war im FORM-Tag das POST-Kommando zu entfernen und dann dich erfolgreich zu Ziel-URL dort unterzubringen. Das merkt man eben immer erst nach reichlichen Fehlvesuchen.
Demnach sollte die angebotene Syntax um «window.location.href» funktionieren. Blind, wie ich war, sah ich in einem Besispiel vor Ort die Syntax «document.location =» nicht mit der ebenfalls eine andere URL aufgerufen werden kann. Unter der Fuchtel des Tools versagt sie indes ebenfalls.
Unglaublich...
 
Als ob so was Lustig wäre wenn nicht mal der Toolentwickler Plan hat was für Schlaglöcher da so drin sind. RTFM? Müsste es erst mal eins geben…
E.M.
 
Zurück
Oben