• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

window.open-Funktion mit AJAX

SusanneM

New member
Hallo zusammen,

ich soll für's Geschäft aus einer gewöhnlichen window.open-Funktion, eine AJAX-Funktion machen: Es soll einfach beim Klick auf ein kleines Bild, dieses Bild in groß in einem neuen Fenster dargestellt werden.
Habe schon über Google gesucht, aber leider keine Lösung für mein Problem gefunden. Jetzt hoffe ich, dass mir hier jemand weiterhelfen kann. Habe noch nie etwas mit AJAX programmiert und bräuchte etwas Unterstützung.

Danke schon mal im Voraus!

Gruß Susanne
 
Also bis jetzt läuft es so ab, dass ich ein Bild verkleinert auf der Website dargestellt habe, und dieses beim onClick-Ereignis über window.open ein neues Fenster öffnet und das Bild in dem neuen Fenster vergrößert dargestellt wird.
Und das möchte mein Chef jetzt über AJAX gelöst haben.
Hat jemand ne Idee wie das funktioniert?

Gruß Susanne
 
also wird asynchron per onClick über die javascript-funktion window.open ein neues fenster geöffnet und per JS mit HTML-Code befüllt bzw. es wird ein php-script aufgerufen?
 
Hier mal ein Beispiel aus meiner Seite:
<a href="javascript:eek:penWindow('bild1_open.aspx','505','380','no');">
<img alt="Bild1" src="../_img/screenshots/bild1_k.jpg" border="0" align="right" WIDTH="150" HEIGHT="113"></a>

So mache ich das mit allen bildern auf der Website.
 
ihr habt also für jedes bild eine eigenes asp script? das ist unglücklich gelöst.
machs so in etwa, oder gleich im asp
Code:
<html>
  <head>
    <title>xxx</title>
    <script type="text/javascript">
      function loadImg(url)
      {
        var hdl = window.open('about:blank', '_blank', 'width=505, height=308');
        if (window.focus)
        {
          hdl.focus();
        }
        try
        {
          hdl.document.open("text/html");
        }
        catch(e)
        {
        }
        hdl.document.writeln("<html>");
        // ...
        hdl.document.writeln("<img src='" + url + "'>");
        // ...
        hdl.document.writeln("</html>");
      }
    </script>
  </head>
  <body>
    <a href="_img/screenshots/bild1_k.jpg" onclick="loadImg(this.href); return false">
      <img alt="Bild1" src="../_img/screenshots/bild1_k.jpg" border="0" align="right" WIDTH="150" HEIGHT="113">
    </a>
    <a href="_img/screenshots/bild2_k.jpg" onclick="loadImg(this.href); return false">
      <img alt="Bild1" src="../_img/screenshots/bild2_k.jpg" border="0" align="right" WIDTH="150" HEIGHT="113">
    </a>
  </body>
</html>
 
Erstmal danke für das Script!

Aber das ist ja dann auch nur über JavaScript gelöst oder? Ich bräuchte halt eine AJAX-Lösung. Hab mal ansatzweise etwas gefunden. Nur öffnet das halt in der selben Seite und ich bräuchte halt, dass Bild auf einer extra Seite.
Hier mal der Code:

<
Code:
<html>
<head>
<title>AJAX</title>
<script type="text/javascript" language="javascript">
 
    var http_request = false;
 
    function macheRequest(url) {
 
        http_request = false;
 
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }
 
        if (!http_request) {
            alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
            return false;
        }
        http_request.open('GET', url, true);
        http_request.onreadystatechange = alertInhalt;
        http_request.send(null);
 
    }
 
    function alertInhalt() {
        if (http_request.readyState == 4) {
              var answer = http_request.responseText;
              if(document.getElementById("inhalt").innerHTML != answer){
                document.getElementById("inhalt").innerHTML = answer;
              }
              else{
                document.getElementById("inhalt").innerHTML = "";
              }
        }
 
    }
</script>
</head>
<body>
<span onclick="macheRequest('test.htm')">
<img alt="Bild1" src="../_img/screenshots/Bild1.jpg" border="0" align="left" WIDTH="150" HEIGHT="113">
</span>
    <div id="inhalt" align="right"></div>
</body>
</html>

Und in dieser test.htm steht dann halt nur:

Code:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
</head>
<body>
<img src="../_img/screenshots/Bild1_g.jpg" width="510" height="384" />
</body>
</html>
 
Aber das ist ja dann auch nur über JavaScript gelöst oder? Ich bräuchte halt eine AJAX-Lösung.
und wie wird es mit AJAX gelöst? nicht über JS? Asynchronous JavaScript and XML - ist nur ein schöner Begriff für alles mögliche (um im endeffekt die aktelle HTML seite nicht neu laden zu müssen).

Hab mal ansatzweise etwas gefunden. Nur öffnet das halt in der selben Seite.
das ist ja der sinn von AJAX. alles andere kann man direkt vom server schneller und besser laden.
 
Und ich sach noch Lightbox...

Allerdings fragt man sich natürlich schon über den Sinn der Anfrage, weil wenn schon neues Fenster für was braucht man dann AJAX?
 
Zurück
Oben