Hvordan laster jeg inn en HTML-side i en <div> ved hjelp av JavaScript?

Jeg vil at home.html skal lastes inn i <div id="content">.

<div id="topBar"> <a href ="#" onclick="load_home()"> HOME </a> </div>
<div id ="content"> </div>
<script>
      function load_home(){
            document.getElementById("content").innerHTML='<object type="type/html" data="home.html" ></object>';
  }
</script>

Dette fungerer fint når jeg bruker Firefox. Når jeg bruker Google Chrome, ber den om plug-in. Hvordan får jeg det til å fungere i Google Chrome?

Løsning

Jeg fant endelig svaret på problemet mitt. Løsningen er

function load_home() {
     document.getElementById("content").innerHTML='';
}
Kommentarer (8)

Du kan bruke jQuery load-funksjonen:

<div id="topBar">
    <a href ="#" id="load_home"> HOME </a>
</div>
<div id ="content">        
</div>

<script>
$(document).ready( function() {
    $("#load_home").on("click", function() {
        $("#content").load("content.html");
    });
});
</script>

Beklager. Redigert for on-klikk i stedet for on load.

Kommentarer (1)

Fetch API (hent API)

function load_home (e) {
    (e || window.event).preventDefault();

    fetch("http://www.yoursite.com/home.html" /*, options */)
    .then((response) => response.text())
    .then((html) => {
        document.getElementById("content").innerHTML = html;
    })
    .catch((error) => {
        console.warn(error);
    });
} 

XHR API

function load_home (e) {
  (e || window.event).preventDefault();
  var con = document.getElementById('content')
  ,   xhr = new XMLHttpRequest();

  xhr.onreadystatechange = function (e) { 
    if (xhr.readyState == 4 && xhr.status == 200) {
      con.innerHTML = xhr.responseText;
    }
  }

  xhr.open("GET", "http://www.yoursite.com/home.html", true);
  xhr.setRequestHeader('Content-type', 'text/html');
  xhr.send();
}

basert på dine begrensninger bør du bruke ajax og sørge for at javascriptet ditt lastes inn før markeringen som kaller funksjonen load_home().

Referanse - davidwalsh

MDN - Bruk av Fetch

[JSFIDDLE demo](http://jsfiddle.net/jpmCz/) [JSFIDDLE demo](http://jsfiddle.net/jpmCz/)

Kommentarer (4)