You are not logged in.

  • Login

1

Monday, May 28th 2007, 1:36pm

Wie funktioniert Target-Steuerung unter JavaScript

Hallo,

wenn ich bei HTML mit mehreren Frames arbeite, kann ich über target="xyz.html" den Link auf ein anderes Frame lenken.

Und nun wollt ich fragen, ob des bei JavaScript auch funktioniert.
Hier mein Quelltext:

JavaScript Code

1
Link('startseite.html','Home');

2

Monday, May 28th 2007, 2:20pm

Moin,
vorausgesetzt das "Home" das target ist.

JavaScript Code

1
2
3
function Link(url, frame) {
    top.frames[frame].location.href = url;
}

3

Monday, May 28th 2007, 2:24pm

also momentan hab ich drinstehen:

JavaScript Code

1
Link('startseite.html','Home');


Wobei startseite.html die anzuzeigende Website ist, Home ist auf dem Bildschirm angezeigte Begriff um den Link zu öffnen,

target="index.html"

Wie funktioniert des? Geht des ohne den "function-"Befehl? Nebenbei: Dies ist ein Link in einer NavBar

4

Thursday, May 31st 2007, 5:22pm

die Seite heißt startseite.html und der Name des Frames ist index.html???
d.h. <frame name="index.html" src="startseite.html" />
irgendwie "strange"...

Aber in dem Fall wäre es eben:

JavaScript Code

1
top.frames['index.html'].location.href = 'startseite.html';

5

Sunday, June 3rd 2007, 2:38pm

nein.

meine komplette startseite in der alle frames (inkl. ihrer einstellungen) vorhanden sind heißt index.html. und das frame in dem die verschiedenen seiten angezeigt werden sollen (also das einzige nichtstatische frame) heißt startseite.html.


Allerdings funktioniert mein function-befehl irgendwie ned

so sieht der Link momentan aus:

JavaScript Code

1
Link('startseite.html','Home');


so sähe er im HTML-Tag aus, falls euch dass weiterhilft:

HTML Code

1
<td><a href ="startseite.html" target="startseite"><img src="navbar1_B1.jpg"></a></td>

wobei, dass erste startseite.html für die Seite steht, die er öffnen soll und das zweite für das Fenster, in dem er sie öffnen soll.

Nur mal als Bsp. So gehts in der HTML-Version weiter:

HTML Code

1
2
3
4
<td><a href ="aktuelles.html" target="startseite"><img src="navbar1_B2.jpg"></a></td> 
 <td><a href ="entstehung.html" target="startseite"><img src="navbar1_B3.jpg"></a></td>  
 <td><a href ="gallery.html" target="startseite"><img src="navbar1_B5.jpg"></a></td>    
usw


und in etwa der Form soll er angeblich als Javascript niedergeschrieben werden:

JavaScript Code

1
2
function Link('startseite.html','startseite.html') {
    top.frames['startseite.html'].location.href = 'startseite.html';

wenn ich des allerdings so niederschreib bringt er mir den fehler, dass er das gesamte "Tabellen-Script nicht anzeigt"

Ich weiß, dass es kompliziert ist. Aber fragt mich einfach falls ihr was nicht versteht. Bitte um Hilfe. Vielen Dank ;-)

6

Sunday, June 3rd 2007, 3:39pm

du formulierst es nur falsch.

Quoted from ""robert712""

das frame in dem die verschiedenen seiten angezeigt werden sollen (also das einzige nichtstatische frame) heißt startseite.html.

Der Frame heißt eben startseite - und nicht startseite.html

D.h. die Funktion bleibt wie in meinem ersten Posting und aufrufen tust du es so:

HTML Code

1
<a href ="#" onclick="Link('aktuelles.html','startseite')"><img src="navbar1_B2.jpg"></a>

7

Monday, June 4th 2007, 8:11pm

Vielen Dank.

Ja das hatte ich verwechselt. Natürlich ist der Name eines Frames keine URL.


Wenn ich nun allerdings folgende Java-Anwendung einbinde, dann meckert mein Browser IE7

er bringt mir an der unten aufgezeigten Stelle die Fehlermeldung Bezeichner erwartet

Java Quellcode

1
2
function Link(      HIER     'startseite.html','startseite') {
    top.frames['startseite'].location.href = 'startseite.html';


vielen dank für die riesige geduld mit mir.

Bringt es euch etwas, wenn ich den code des kompletten Scripts poste?

8

Monday, June 4th 2007, 8:57pm

ich weiß nicht warum du als die Funktion änderst und dort Strings anstatt der Variablen reinmachst, Du musst einfach nur die Funktion aus meinem allerersten Posting übernehmen und deine Aufrufe der Funktion entsprechend umschreiben.

HTML Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
<head>
<script type="text/javascript">
function Link(url, frame) {
    top.frames[frame].location.href = url;
}
</script>
</head><body>
 
<iframe src="index.html" name="startseite" />
 
<a href ="#" onclick="Link('aktuelles.html','startseite')"><img src="navbar1_B2.jpg"></a>
<a href ="#" onclick="Link('test.html','startseite')"><img src="navbar1_B2.jpg"></a>
 
</body></html>

9

Sunday, June 10th 2007, 12:30pm

Ich würd des gern nochmal kurz auseinanderziehen:

JavaScript Code

1
2
function Link(url, frame) { 
    top.frames[frame].location.href = url;


Ich habe folgende Daten:

Frame in welchem der Link drinsteht
frame name="navigation" zugehöriger frame src="navigation.html

Der Frame in dem die neue Site angezeigt werden soll:
frame name="startseite" src="startseite.html"

Dieser Frame soll angezeigt werden:
url="gallery.html"

10

Sunday, June 10th 2007, 12:54pm

Hi,
der Frame in dem der Link steht, ist doch eigentlich irrelevant. Oder brauchst du den für andere Zwecke?

11

Sunday, June 10th 2007, 1:15pm

nein eg brauch ich ihn ned.

aber könntest du mir mit diesen angaben die function zusammenbasteln??

12

Sunday, June 10th 2007, 2:08pm

Die Funktion ist fertig.
Ich hab sie dir noch ein wenig in Javadoc Notation kommentiert...

JavaScript Code

1
2
3
4
5
6
7
8
9
10
11
/**
 * Stellt eine URL in einem ausgewähltem Frame dar
 * @param frame -> der Frame in dem die neue Site angezeigt werden soll. 
 *			z.B. startseite bei frame name="startseite" src="startseite.html"
 * @param url -> Die URL, die im Frame angezeigt werden soll.
 *			z.B. gallery.html bei url="gallery.html"
 * @return -> kein Rückgabewert
 */
function Link(url, frame) {
    top.frames[frame].location.href = url;
}

Similar threads

Social bookmarks