Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

sona

Jungspund

Dabei seit: 23.08.2008

Beiträge: 24

 

1 Zum Seitenanfang

Donnerstag, 4. August 2011, 15:33

Frage zu Javascript und Iframes

Ich habe hier ein HTML Dokument mit einem javascript und einem iframe. In dem iframe befindet sich ein div container. Wie kann das JavaScript Zugriff auf das div Element bekommen? Ich hab schon ewig rumprobiert, aber es ist mir ein Rätsel.

Javascript-Quelltext

1
2
3
4
<script type="text/javascript">
function zugriff() {
  alert ( document.getElementById('iframe1').contentWindow.getElementById('a').value ); }
</script>


Der HTML Teil:

HTML

1
2
3
4
5
<body onload="zugriff()">
<iframe id="iframe1">
   <div id="a" value="b"></div>
</iframe>
</body>


Der Browser meldet immer einen Javascript Error: "Object doesn't support this property or method".
Weiß jemand weiter?

Danke fürs Reinschauen.

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »sona« (4. August 2011, 15:33)

 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

2 Zum Seitenanfang

Donnerstag, 4. August 2011, 15:44

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html>
<head></head>
<body>
<iframe id="iframe1">
   <div id="a" value="b"></div>
</iframe>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
var wertDesLinks = $('#iframe1 #a').attr('value'); // gibt mir den wert des attributes value , welcher sich in einem element mit der id iframe1 befindet
alert(wertDesLinks); //sollte b rauskommen
})
</script>
</body>
</html>
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »cccpmik« (4. August 2011, 15:44)

 

sona

Jungspund

Dabei seit: 23.08.2008

Beiträge: 24

 

3 Zum Seitenanfang

Donnerstag, 4. August 2011, 15:55

Danke, aber geht es auch ohne Jquery?

Über

Javascript-Quelltext

1
document.getElementById('hidden2').contentWindow.document.getElementById('a').value
kann man das div auch nicht ansprechen. Das muss doch irgendwie gehen.

Edit: Das Alert mit der Jquery Methode gibt leider nur ein "undefined" aus

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sona« (4. August 2011, 15:55)

 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

4 Zum Seitenanfang

Donnerstag, 4. August 2011, 16:01

ne auch mein jQuery vorschlag ging nicht. was haste denn vor? bei selfhtml gibt es auch noch beispiele wie die auf iframes zugreifen

http://de.selfhtml.org/javascript/objekte/frames.htm. aber ein iframe kann kein html in sich haben, bzw wird dein div id=a nur dann angezeigt, wenn iframes deaktiviert sind, sonst steht im iframe element der html code aus der src eigenschaft.

EDIT:
das hat bei mir funktioniert

index.html

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head></head>
<body>
<iframe id="iframe1" src="test.html"></iframe>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
var wertDesLinks = $('#iframe1').contents().find("#a").attr('value'); 
alert(wertDesLinks); //b wird angezeigt
})
</script>
</body>
</html>


test.html

HTML

1
<div id="a" value="b"></div>
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »cccpmik« (4. August 2011, 16:01)

 

sona

Jungspund

Dabei seit: 23.08.2008

Beiträge: 24

 

5 Zum Seitenanfang

Donnerstag, 4. August 2011, 16:02

Eigentlich hat das iframe ein php skript als src und das php script gibt eine html Seite aus, die ja dann im iframe angezeigt wird. Ich hab das eigentliche Problem nur vereinfacht dargestellt. Die Frage ist, wie ich Zugriff auf die einzelnen Elemente innerhalb eines iframes bekomme.

Wenn man innerhalb eines iframes html code mit einem JavaScript hat, kann dieses Javascript über parent.undsoweiter auf die Elemente des übergeordneten Fensters zugreifen, aber das müßte doch auch andersrum möglich sein?
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

6 Zum Seitenanfang

Donnerstag, 4. August 2011, 16:06

dann musst du wahrscheinlich sowas komisches machen wie

Javascript-Quelltext

1
window.frames.frame1Name.document.getElementById("a").value


aber wieso gibst du eine php seite als src in einem iframe? kannst doch dann gleich <?php include 'meiniframe.php'; ?> machen
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cccpmik« (4. August 2011, 16:06)

 

sona

Jungspund

Dabei seit: 23.08.2008

Beiträge: 24

 

7 Zum Seitenanfang

Donnerstag, 4. August 2011, 16:10

aber wieso gibst du eine php seite als src in einem iframe? kannst doch dann gleich <?php include 'meiniframe.php'; ?> machen
Weil die vom PHP Skript erzeugte Ausgabe wierderum ein Javascript enthält, welches die Inhalte des parent documents dynamisch ändert, ohne daß gleich die ganze Seite neu geladen werden muss
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

8 Zum Seitenanfang

Donnerstag, 4. August 2011, 16:12

dann nimm jQuery;) habe ja oben geschrieben wie es funktioniert
Mein kleines Projekt
-Cruel Online-
 

sona

Jungspund

Dabei seit: 23.08.2008

Beiträge: 24

 

9 Zum Seitenanfang

Donnerstag, 4. August 2011, 16:26

Wenn ich es mit window.frames.frame1Name.document.getElementById("a").value anspreche kommt leider wieder der Fehler.

Die letzte Variante mittels JQuery hat erstaunlicherweise funktioniert!

Ich würds nur gern ohne JQuery hinkriegen, weil das JQuery Skript ist knapp 0,1 MB groß

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sona« (4. August 2011, 16:26)

 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

10 Zum Seitenanfang

Donnerstag, 4. August 2011, 16:31

wenn du später sowieso DOM manipulationen vornimmst, wirst du froh sein jQuery nutzen zu können;) es geht bestimmt auhc ohne, leider habe ich mich in letzten jahren so viel mit jQuery außeinander gesetzt, dass ich reinen JS nicht mehr kann:D

und was sind schon 0.1 MB?
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cccpmik« (4. August 2011, 16:31)

 

sona

Jungspund

Dabei seit: 23.08.2008

Beiträge: 24

 

11 Zum Seitenanfang

Donnerstag, 4. August 2011, 17:37

Hab gerade per zufall rausgekriegt, wie es geht!

Man kann es so ansprechen:

Das iframe enthält wiegesagt eine html Datei oder die php Ausgabe. hat aber neben der "id" noch die Eigenschaft "name".
Über diesen name und window bekommt man Zugriff auf die Elemente in dem iframe:

HTML

1
<iframe id="iframe1" name="iframe1" src="ifr1.php"></iframe>


JavaScript Zugriff auf das div mit der id 'a' über:

Javascript-Quelltext

1
window.iframe1.document.getElementById('a').value


Ich schätze der Knackpunkt war, daß man den HTML Code nicht direkt zwischen den iframe tags eintragen darf,
sondern über src gehen muß!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sona« (4. August 2011, 17:37)

 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

12 Zum Seitenanfang

Donnerstag, 4. August 2011, 17:47


aber ein iframe kann kein html in sich haben, bzw wird dein div id=a nur dann angezeigt, wenn iframes deaktiviert sind, sonst steht im iframe element der html code aus der src eigenschaft.


:D ich glaube ich habe das vor fast 2 stunden dir gesagt;)

bei selfhtml steht auch sowas wie

HTML

1
2
3
<iframe src="bla.html">
Ihr browser unterstützt keine Iframes..
</iframe>
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cccpmik« (4. August 2011, 17:47)