2017-09-25 1 views
0

Ich sah die Optionen zum Herunterladen von Links, aber fand nicht den automatischen Download aller Links.jquery oder vanilla javascript auto load (jquery load) alle link content in page

Ich brauche automatisches Laden, es ist nicht wichtig, jquery laden oder Ajax oder HTTP-Anfrage oder loadPageSection. Jede Option ist in Ordnung.

Zuerst habe ich die einfachste Version mit der Klickemulation für jeden Link erstellt.

$(function() { 
    document.querySelector('.className').click(); 
}); 

$("a").click(function() { 
    $("#pageLoad").load($(this).attr("href")); 
    return false; 
}); 

Allerdings funktionierte es als Redirect, Umleitung auf die erste Seite. Als nächstes ich den Klick auf jedem (function() ersetzt, alles funktioniert, obwohl bisher nur die erste Seite

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script> 
$(function() { 
    $('a').each(function() { 
    $(".pageLoad").load($(this).attr('href')); 
    }); 
}); 
</script> 
<table align="center"> 
    <tr><td> 
    <a href="test.html" class="className">first</a> 
    <div class="pageLoad"></div></td><td> 
    <a href="test1.html" class="className">second</a> 
    <div class="pageLoad"></div></td><td> 
    <a href="test.html" class="className">third</a> 
    <div class="pageLoad"></div></td></tr> 
</table> 

geladen Es ist notwendig, dass alle Seiten geladen werden. unter jedem <a href Idealerweise sollte es kein <div class = "pageLoad"> geben und alles sollte automatisch hinzugefügt werden, wodurch ein div erzeugt und vielleicht als Kind hinzugefügt wird.

Und am wichtigsten, jQuery macht es möglich, load ('test.html #target'); zu verwenden, um das erforderliche Element herunterzuladen, wie es jetzt geht?

$(". pageLoad").load($ (this #target).attr ('href')); funktioniert nicht?

Wie das erforderliche Fragment in diesem Fall herunterladen?

Und das letzte: wenn es auch Links in der geladenen Seite gibt, wird es irgendwelche Probleme geben? Jetzt, während alles 1 mal geladen ist, gibt es keine Probleme.

Es ist notwendig, den Inhalt von Links nur einmal für alle Links auf der Seite zu laden.

Die Lösung für diese Probleme ist zu komplex für mich.

Update:

<script> 
$.ajaxSetup({ 
'beforeSend' : function(xhr) { 
xhr.overrideMimeType('text/html; charset=windows-1251'); 
}, 
}); 

$(function() { 
$('a').each(function() { 
$(this).parent().find(".pageLoad").load($(this).attr('href') + ' #inf-1751'); 
}); 
}); 
</script> 

fixiert ich die Anzeige der Codierungen. Das letzte Problem besteht darin, die Anker an den Elementen zu verwenden. Wenn Sie nur Anker hinzufügen, dann laden Sie eine Kopie der Seite, wenn zu einer anderen Seite, funktioniert der Anker auch nicht, Laden der gesamten Seite.

+0

So hinzufügen möchten Sie Seite in jedem separaten div laden? – Firanolfind

+0

obwohl für jeden wäre es besser, eine universelle Funktion zu haben, aber für mich ist es genug und so ein Ergebnis, immer ein div mit Regex oder durch die Erstellung relativ einfach. – novicer

+0

Ich glaube, ich habe Sie, überprüfen Sie meine aktualisierte Antwort. – Firanolfind

Antwort

-1

Wenn Sie jede Seite in jeden Ihrer verknüpften Container .pageLoad laden möchten, dann könnte es so aussehen.

$('a').each(function() { 
    $(this).parent().find(".pageLoad").load($(this).attr('href')); 
}); 

Wenn Sie möchten, .pageLoad auf

fly hinzufügen
$('a').each(function() { 
    $(this).after('<div class="pageLoad"/>').load($(this).attr('href')); 
}); 

Keine Notwendigkeit .pageLoad manuell

<table align="center"> 
    <tr> 
    <td> 
     <a href="test.html" class="className">first</a> 
    </td> 
    <td> 
     <a href="test1.html" class="className">second</a> 
    </td> 
    <td> 
     <a href="test.html" class="className">third</a> 
    </td> 
    </tr> 
</table>