J'ai le script suivant que j'ai besoin de combiner d'une manière ou d'une autre. Chaque fonction fonctionne individuellement pour le moment.Modifier les résultats renvoyés avant de les ajouter à l'écran
// Check if file exists clientside
function FileExists(path) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
FileExist = fso.FileExists(path);
if (FileExist == true){
return true
} else {
return false
}
}
// Get links from database
function getSearchResults() {
var search;
search = $(".txtHeaderSearch").val();
$.ajax({
url: 'results.aspx',
type: 'POST',
data: { strPhrase:search },
success: function(results) {
// Need to somehow stop the .exe links from appearing on screen if FileExists == false
$("#divSearchResults").empty().append(results);
}
});
}
// The returned data looks something like this
<div><a href="link1.xls">link 1</a></div>
<div><a href="link2.exe">link 2</a></div>
<div><a href="link3.doc">link 3</a></div>
<div><a href="link4.aspx">link 4</a></div>
Est-il possible d'intégrer en quelque sorte la fonction FileExists avec la fonction ajax succès pour éviter les liens .exe d'apparaître sur les clients écran si le fichier exe en question n'existe pas sur l'ordinateur des clients?
EDIT 1: Ce qui suit est de me donner un objet ne supporte pas cette propriété ou erreur méthode:
success: function(results)
{
results.find('a[href$=".exe"]').each(function(){
if (FileExists(this.href)) {
$(this).parent().remove();
}
});
$("#divSearchResults").empty().append(results);
}
EDIT 2: Ne plus donner l'erreur, mais ne supprime pas les fichiers exe non Existant soit.
success: function(results)
{
$(results).find('a[href$=".exe"]').each(function(){
if (FileExists(this.href)) {
$(this).parent().remove();
}
});
$("#divSearchResults").empty().append(results);
}
EDIT 3: Cela ne fonctionne pas non plus.
success: function(results)
{
var $results = $(results);
$results.find('a[href$=".exe"]').each(function(){
if (! FileExists(this.href)) {
$(this).parent().remove();
}
});
$("#divSearchResults").empty().append($results);
}
Je ne veux pas supprimer tous les fichiers .exe des résultats, uniquement les fichiers .exe qui n'existent pas sur l'ordinateur client. D'où la fonction FileExists. – oshirowanen
a modifié ma réponse ...;) – Reigel
Est-ce que ce script mis à jour va dans la section de succès de la fonction jquery ajax? – oshirowanen