IFrame onChange

Zack

cookies vader
Hallo,

ich bau gerade eine Touchscreenoberfläche für einen Rechner der bei uns in der Zentralen Studienberatung aufgebaut werden soll. Dort soll es eine Liste an Links geben die man dann aufrufen kann. Da der Browser im Vollbild laufen wird, fehlen die Browsernavigationen. Diese habe ich mittels Javascript nachgebaut. Die eigentliche Seite wird dann einfach in einem IFrame aufgerufen.

Ich möchte die aufgerufenen Seiten mitloggen und prüfen ob der Link überhaupt aufgerufen werden darf. Es handelt sich um eine Lösung für maximal 15 unterschiedliche Domains. Das ganze wird dann durch ein einfaches Interface verwaltet. Da es sich nur um einen Rechner handelt, ist eine Lösung durch Sperrung von bestimmten Seite mittels Proxy etwas to much.

Einfacher wäre es, wenn ich jedes mal wenn sich das IFrame ändert die aufgerufene Domain prüfen könnte, also das onChange Event verwende. Naja das geht aber nicht ;) gibt es eine alternative Lösung?

Mfg Zack
 
Ich verstehe noch nicht so ganz was du da machen willst, aber kannst du nicht die Links mit einem onclick versehen und die Prüfung dort vornehmen!?

NACHTRAG: onclick braucht es gar nicht bzw. geht da auch gar nicht.

HTML:
<script language="javascript" type="text/javascript">
function check(link, status) {
	if (status) {
		document.location.href = link;
	} else {
		alert ("Zugriff verboten");
	}
}
</script>

<p>
<a href="javascript:check('www.tutorials.de', 1);">Tutorials</a>
<br />
<a href="javascript:check('www.verbotene_seite.de', 0);">Ich bin verboten</a>
</p>
 
Zuletzt bearbeitet:
Naja das Problem ist: das sind riesige Portalseiten die halt nicht nur in diesem Zusammenhang eingesetzt werden.

Ich will kontrollieren können welche Seiten innerhalb des IFrames aufgerufen werden. Das Teil soll lediglich dazu da sein, dass sich jemand vor Ort informieren kann. Es besteht das Problem das immer wieder jemand kommt und was fragt und es dann heißt: "Schauen Sie mal auf www.tu-dresden.de/sins" Dann kommt der 2 Tage später wieder und hat ne andere Frage die er schon nach 10 Minuten an so nem Gerät stehen hätte stellen können. Es muss also so sein das bestimmte Seiten erlaub sind, andere aber nicht. Man will ja nicht das dann dort Leute zu youtube schauen hin gehen...

Edit: hinzu kommt das ich nicht in allen Seiten Code einbauen kann, gehört nicht in mein Zuständigkeitsbereich, bzw mir fehlen die Berechtigungen etc.
 
Zuletzt bearbeitet:
Kann man den jetzt nur Seiten aufrufen die verlinkt sind oder kann man auch selber irgendeine Adresse (z.B. youtube) eingeben?

Hast du vollen Zugriff auf dem IFRAME und die Berechtigung darin zu "programmieren"?
 
Also. ich kann die Seiten die im IFrame aufgerufen werden nicht beeinflussen. Welche Seite inital aufgerufen wird, überprüfe ich bereits. Das heißt: wenn http://localhost/page.html?site=tu-dresden.de aufgerufen wird überprüfe ich ob tu-dresden.de aufgerufen werden darf. Wenn dem der Fall ist wird einfach ein IFrame mit der Seite tu-dresden.de als Inhalt geöffnet. Diesen Inhalt kann ich natürlich nicht beeinflussen. Deshalb muss ich jedesmal wenn im Iframe eine Url geöffnet wird nochmals prüfe ob diese Seite erlaubt wird. Allerdings das ganze ohne die Seiten die das IFrame aufruft anzufassen.

Bsp: http://localhost/page.html?site=tu-dresden.de
Seite darf aufgrufen werden -> Iframe ruft http://tu-dresden.de auf.
Nutzer klickt Link youtube.de an -> nochmalige Überprüfung durch page.html, youtube ist nicht erlaubt -> Änderung der Url des IFrames zu einer Fehlerseite.

Verstanden? oO
 
Ja verstanden habe ich es jetzt. Allerdings habe ich nebenher ein bisschen was probiert und mal im Netz nach deinem Problem gesucht.

So wie es aussieht, ist es nicht möglich die aufgerufene URL eines Iframes via JavaSrcipt auzulesen. Wenn du z.B. mit onload arbeitest, kannst du dir zwar dann den Wert des src-Arguments ausgeben lassen. Es ist aber immer die URL die ursprünglich im HTML Code eingegeben wurde.
 
Ja gut, dann bist du genau auf das gestoßen was ich auch gefunden habe ;). Ich dache das eventuell jemand Schwarze Magie in petto hat.

Auf jedenfall danke für deine Mühen!
 

Neue Beiträge

Zurück