我需要仅显示锚定的div,并能够与该锚定共享链接。它没有按预期工作(尝试bar1 (blank) bar2 (blank)链接)。如果从文件中加载了bar1(或bar2),则使用锚点www.foo.bar/main.html#bar1bar1bar2)加载main.html页面(如下所示)将无法正确处理CSS和jQuery。另一方面,如果#foo元素作为html字符串附加,则锚定链接似乎有效(例如www.foo.bar/main.html#foo)。要比较行为,请单击foo (blank)bar1 (blank)bar1bar2 (blank)bar2链接,bar1 (blank)bar2 (blank)链接无法显示bar1(或bar2)div。显然,它与异步文件加载有关。有没有办法解决这个问题?

main.html:

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
        <script>
$("<div>").load("bar1.html #bar1", function() {
  $('body').append($(this).html());
});
$("<div>").load("bar2.html #bar2", function() {
  $('body').append($(this).html());
});

$(function() {
    $( 'body' ).append("<div id='foo' style='background-color:#8F8;'>FOO</div>");
});
        </script>
        <style>
div:not(:target) { display: none; }
div:target { display: block; }
        </style>
    </head>
    <body>
        <a href="main.html#foo" target="_blank">foo (blank)</a>
        <a href="main.html#bar1" target="_blank">bar1 (blank)</a>
        <a href="main.html#bar1">bar1</a>
        <a href="main.html#bar2" target="_blank">bar2 (blank)</a>
        <a href="main.html#bar2">bar2</a>
    </body>
</html>


bar1.html:

<div id='bar1'>BAR1</div>


bar2.html:

<div id='bar2'>BAR2</div>

最佳答案

不知道您要怎么做。

但是尝试将jQuery包装在文档中

<script>
  $(document).ready(function(){

    $("<div>").load("bar.html #bar", function() {
      $('body').append($(this).html());
    });

    $( 'body' ).append("<div id='foo' style='background-color:#8F8;'>FOO</div>");

  });
</script>

10-04 16:40