Javascript - Programmatisch Auf Anker in iOS-Safari
Ich arbeite mit einer bestehenden website, mit einigen Anker-tags, etwa so:
<ul>
<li><a id="answer-1" href="/" rel="0">Answer 1</a></li>
<li><a id="answer-2" href="/" rel="1">Answer 2</a></li>
<li><a id="answer-3" href="/" rel="2">Answer 3</a></li>
<li><a id="answer-4" href="/" rel="3">Answer 4</a></li>
</ul>
Muss ich programmatisch auf eine dieser Anker abhängig von der Auswahl des Benutzers.
Auf dem desktop, im IE funktioniert das:
document.getElementById('answer-1').click();
Jedoch nicht ganz funktioniert in iOS safari, diese Ergebnisse in einem popup-Fenster:
if (!document.getElementById('answer-1').click) alert ('Oh no!');
Gut ich kann sagen, Sie haben einige andere javascript-süchtig senden die rel
tag als Antwort. Gibt es eine andere Möglichkeit, programmgesteuert klicken Sie auf den Anker in iOS Safari? Oder muss ich Graben gehen in Ihre javascript, um herauszufinden, was aufgerufen wird, wenn der Anker geklickt?
Habe ich auch dies ausprobiert, was nicht funktioniert:
window.location.href = document.getElementById('answer-1').href;
Müssen Sie mehr tun in Javascript irgendwo (vielleicht jquery).
- Die
window.location
ist ein Objekt. Sie sollten eshref
-Eigenschaft wie folgt:window.location.href = document.getElementById('answer-1').href
- Sorry, ich war die Eingabe, die aus der Spitze von meinem Kopf. Ich habe meinen Antwort, es funktioniert nicht.
- Dies ist eine Frage der Sicherheit. Sie können nicht untersuchen, lokale Ordner in allen Browsern.
- Was hat das zu tun mit den Ordnern?
<a href="/">Anchor</a>
öffnet sich ein Ordner.- Das ist falsch. Es wird umgeleitet, um die Wurzel der aktuellen Webseite nicht öffnen Sie einen Ordner.
- Ursprüngliche Frage beinhaltet dies: "Auf dem desktop, im IE, das funktioniert:". Auf einem server, wie Sie sagte. Auch dies scheint mir komisch:
if (!document.getElementById('answer-1').click)
. Ausdruck bezieht sich auf DOMclick
-Methode. Ereignisse können nicht verarbeitet werden thorugh es? - Zu klären: Aufruf
click()
funktionierte gut für mich in IE9 auf Windows 7.if (myControl.click)
auch zu true ausgewertet wird in diesem browser.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich, antwortete auf eine ähnliche Frage, wo man braucht zu versenden klicken Sie auf Ereignis manuell: Zwingen link zu öffnen in safari (Mobil) aus einer web-app mit javascript
Können Sie beantragen, dass die Logik in deinem code.
Sieht aus wie die Klick-Funktion ist nicht unterstützt durch Mobile Safari. Dokument.getElementById('Antwort 1').klicken Sie auf "undefined" zurückgibt, das ist, warum Sie bekommen die Warnung. Versuchen Sie es mit .trigger()
Sieht es für mich wie es ist nicht ein Weg, um call
click()
im mobile safari.Mithilfe der dev-toolbar in Google Chrome, ich war in der Lage, herauszufinden, die javascript Funktion, die aufgerufen wird, wenn Sie auf einen dieser Anker.
Konnte ich nur die Funktion aufrufen, um zu bekommen, was ich brauche.
Werde ich noch ein paar Tage warten, um markieren Sie die Antwort, als würde ich noch gerne wissen, alternative zu
click()
im mobile safari.Dieses problem trat auch mit meinem Mac-app getestet unter Snow Leopard oder Lion. Komischerweise klappte es mit Mountain Lion.
Habe ich das problem gelöst mit Hilfe von jQuery.
Können Sie auch geben, es zu versuchen, wenn die Seite bereits geladen jQuery!