Frage

Ich schreibe eine Web-Anwendung, die im Kiosk-Modus auf einem Touchscreen ausgeführt wird. Ich bin derzeit Targeting es nur für 3. Einige der Anwendungsfälle auf Firefox läuft Ich habe benötigen externe Websites zu besuchen. Ich möchte so mit einem eingebetteten Browser tun, die ich mit Hilfe eines <iframe> bin Angriff zu nehmen. Ich brauche Vor / Zurück-Tasten für die Embedded-Homepage.

Ich habe es geschaffen mit

der Geschichte Ziel des iframe zuzugreifen
var w = document.getElementById('embeddedBrowser').contentWindow;
w.history.back();

Die history des eingebetteten Fensters ist das gleiche wie die des übergeordneten Fensters. Deshalb muß für eine neu geladene <iframe>, wird dieser Anruf geht zurück auf die vorherige Seite des Systems.

Gibt es eine Möglichkeit, dies oder einen richtigere Weg, dies zu vermeiden lösen?

War es hilfreich?

Lösung

Da es nur eine Geschichte Objekt in jedem Register geteilt ist, scheint dies unmöglich. Der richtige Weg, um es wäre window.history.current oder window.history.previous zu testen, bevor Sie sich zurück. Leider window.history.current ist privilegiert und so nicht zur Verfügung unsigned Seiten.

Hier ist eine grobe Skizze einer unordentlichen Abhilfe:

<iframe src="somepage.html" name="myframe"></iframe>
<p><a href="#" id="backBtn">Back</a></p>

<script type="text/javascript">

  document.getElementById('backBtn').onclick = function () {
    if (window.frames['myframe'].location.hash !== '#stopper') {
      window.history.back();
    }
    // ... else hide the button?
    return false; // pop event bubble
  };
  window.frames['myframe'].onload = function () {
    this.location.hash = 'stopper';
  };

</script>

Natürlich ist dies unter der Annahme, dass kein (#hash) Browsing jemals geht in Eltern-Fenstern, und so weiter, aber es scheint, für das Problem der Begrenzung Rückwärtsbewegung zu arbeiten.

Andere Tipps

Sie können einen Blick auf Adobe AIR nehmen wollen. Damit können Sie Ihre Anwendung schreiben mit allen die gleichen Werkzeuge / Sprachen (Ajax, HTML, etc etc), aber da es als Desktop-Anwendung ausgeführt wird und nicht in einem Web-Browser, haben Sie mehr Kontrolle über die Dinge, wie die Einbettung Browser verfügen und genau zu wissen, was sie tun, was URL es wird, seine Geschichte zu steuern, usw. Sehen Sie hier für ein paar Hinweise zu den ersten Schritten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top