2016-05-15 21 views
2

Ich versuche, eine Suchseite zu erstellen, wo der Benutzer Text in ein Suchfeld eingibt und die Seite basierend auf der Suche generiert wird. Ich habe Zeitprobleme, weil die leere Suchseite geladen wird, nachdem JS versucht, die Werte auf der Seite zu bearbeiten.Ajax Anruf nach dem Laden der Seite

$.ajax({ 
    type: 'GET', 
    url: '/index.php/content/generate_search', 
    data: { 
     search: input.val() 
    }, 
    beforeSend: function() { 
     window.location.href = '/index.php/content/search'; 
    }, 
    success: function() { 
     $('.hero h1').text(input.val()); 
    } 
}); 

Antwort

2

Um zu überprüfen, dass der DOM vollständig geladen ist, viele Schritte alle getan werden müssen, um unter dem Browser in Betracht. (Ich kann die Implementierung in der jQuery-Quelle nicht finden, aber ich werde mit einem Link zurückkommen).

Die einfachste und wahrscheinlich beste Weg, es zu tun, da Sie bereits mit jQuery ist durch:

$(function() { 
    // your code here 
}); 

, die für eine Kurz

$(document).ready(function() { 
    // your code here 
}); 

EDIT

ist Ok, so wie ich es versprochen habe, kam ich mit der Implementierung von document.ready zurück. Sie können es hier finden, auf GitHub. Here ist ein permanenter Link zur aktuellen Version der Datei.

0

onload wird für Ausführung von Code auf Pageload

window.onload = function() { 
    // your code 
}; 
+0

wird das ausgelöst, wenn die Homepage geladen wird oder wenn die URL in window.location.href geladen wird? – compsci45000

1

Versuchen benutzt:

$(document).ready(function(){ 
//Your code 
}); 
0

Dieser Code:

beforeSend: function() { 
    window.location.href = "/index.php/content/search"; 
}, 

... verursacht den Browser verlassen die Seite und laden Sie eine neue, bevor die Anforderung Ajax sendet.

Folglich wird die Ajax-Anfrage abgebrochen. Wenn dies nicht der Fall wäre, würde kein JavaScript auf die Antwort warten.

Wenn Sie /index.php/content/search aufrufen und dann eine Ajax-Anfrage starten möchten, muss das JavaScript zum Einleiten der Ajax-Anfrage auf /index.php/content/search stehen. Eine Seite, die Sie gerade verlassen haben, kann JavaScript auf der nächsten Seite nicht ausführen.

Verwandte Themen