Unten ist eine Seite, die zwei div
s mit IDs 'foo' und 'bar' dynamisch angehängt. Problem ist, dass mit Chrome (v50.0.2661.102) Browser kann ich nicht Seite Sprung zu einem "bar" div
, die von Datei geladen wird, indem Sie #bar an die URL (www.foo.bar/main.html#bar
) anhängen, aber ich kann dies tun für ' foo '(www.foo.bar/main.html#foo
) div
, die deutlich an body
angefügt wurde. Es sieht so aus, als ob die Funktion .load()
asynchron ist. Ich habe kein solches Problem in Firefox oder IE. Gibt es eine Möglichkeit, dieses Problem zu umgehen?URL + Anker funktioniert nicht mit Element geladen aus Datei mit jQuery
main.html:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
<script>
$(function() {
$("<div>").load("bar.html #bar", function() {
$('body').append($(this).html());
});
$('body').append("<div id='foo' style='background-color:#8F8;'>FOO</div>");
});
</script>
</head>
<body>
<div style="height:150%; background-color:#FF8;">Lorem ipsum</div>
</body>
</html>
bar.html:
<div id='bar' style="background-color:#88F;">BAR</div>
Sorry für die nicht klar zu machen, lege ich meine Dateien auf einen Webserver. Das Problem bezieht sich nicht auf Cross-Origin-Anfragen. – alex
das ist seltsam .. weil es für mich funktioniert .. überprüfen Sie hier http://w3adventures.com/download/SO_37409658/ – jakob
Sie haben Recht, es tut. Ich war von Chrome Verhalten verwirrt - wenn Sie zum ersten Mal zum Anker kommen und nach oben scrollen, dann drücken Sie die Eingabetaste in der Adressleiste, der Browser springt nicht zum Anker. Es sieht so aus, als würde die URL nicht geändert, der Browser würde nicht zurückspringen. Vielen Dank. – alex