Bagaimana cara memuat sebuah halaman HTML di <div> menggunakan JavaScript?

Aku ingin home.html untuk beban di <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>

Ini bekerja dengan baik ketika saya menggunakan Firefox. Ketika saya menggunakan Google Chrome, ia meminta untuk plug-in. Bagaimana aku bisa bekerja di Google Chrome?

Mengomentari pertanyaan (5)
Larutan

Akhirnya aku menemukan jawaban untuk masalah saya. Solusinya adalah

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

Anda dapat menggunakan jQuery beban fungsi:

<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>

Maaf. Diedit untuk di klik bukan pada beban.

Komentar (1)

Mengambil 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();
}

berdasarkan kendala-kendala yang anda harus menggunakan ajax dan pastikan bahwa anda javascript dimuat sebelum markup yang menyebut load_home() fungsi

Referensi - davidwalsh

MDN - Menggunakan Fetch

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

Komentar (4)

Saya melihat ini dan berpikir itu tampak cukup bagus jadi saya melakukan beberapa tes di atasnya.

Ini mungkin tampak seperti sebuah pendekatan bersih, tetapi dalam hal kinerja itu tertinggal sebesar 50% dibandingkan dengan waktu yang dibutuhkan untuk memuat halaman dengan jQuery beban fungsi atau menggunakan vanili javascript pendekatan XMLHttpRequest yang kira-kira mirip satu sama lain.

Saya membayangkan hal ini karena di bawah tenda itu mendapatkan halaman yang sama persis fashion tetapi juga harus berurusan dengan membangun yang baru HTMLElement objek juga.

Dalam ringkasan saya sarankan menggunakan jQuery. Sintaks adalah sebagai mudah digunakan karena dapat dan memiliki baik terstruktur panggilan kembali untuk anda gunakan. Hal ini juga relatif cepat. Vanili pendekatan dapat dilakukan dengan lebih cepat oleh kentara beberapa milidetik, tetapi sintaks membingungkan. Saya hanya akan menggunakan ini dalam sebuah lingkungan di mana saya didn't memiliki akses ke jQuery.

Berikut ini adalah kode yang saya gunakan untuk test - ini adalah cukup sederhana tapi kali datang kembali dengan sangat konsisten di beberapa mencoba jadi aku akan mengatakan yang tepat untuk sekitar +- 5ms dalam setiap kasus. Tes dijalankan di Chrome dari rumah saya sendiri server:




    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>


    <div id="content"></div>
    <script>
        /**
        * Test harness to find out the best method for dynamically loading a
        * html page into your app.
        */
        var test_times  = {};
        var test_page   = 'testpage.htm';
        var content_div = document.getElementById('content');

        // TEST 1 = use jQuery to load in testpage.htm and time it.
        /*
        function test_()
        {
            var start = new Date().getTime();
            $(content_div).load(test_page, function() {
                alert(new Date().getTime() - start);
            });
        }

        // 1044
        */

        // TEST 2 = use  to load in testpage.htm and time it.
        /*
        function test_()
        {
            start = new Date().getTime();
            content_div.innerHTML = ''
        }

        //1579
        */

        // TEST 3 = use httpObject to load in testpage.htm and time it.
       function test_()
       {
           var xmlHttp = new XMLHttpRequest();

           xmlHttp.onreadystatechange = function() {
                if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
                {
                   content_div.innerHTML = xmlHttp.responseText;
                   alert(new Date().getTime() - start);
                }
            };

            start = new Date().getTime();

            xmlHttp.open("GET", test_page, true); // true for asynchronous
            xmlHttp.send(null);

            // 1039
        }

        // Main - run tests
        test_();
    </script>

Komentar (4)

Pengambilan HTML Javascript modern cara

Pendekatan ini menggunakan Javascript modern fitur seperti async/menanti dan mengambil API. Download HTML sebagai teks dan kemudian feed untuk innerHTML dari elemen kontainer.

/**
  * @param {String} url - address for the HTML to fetch
  * @return {String} the resulting HTML string fragment
  */
async function fetchHtmlAsText(url) {
    return await (await fetch(url)).text();
}

// this is your `load_home() function`
async loadHome() {
    const contentDiv = document.getElementById("content");
    contentDiv.innerHTML = await fetchHtmlAsText("home.html");
}

Yang menunggu (menunggu fetch(url)).teks() mungkin tampak sedikit rumit, tapi itu's mudah untuk menjelaskan. Ini memiliki dua asynchronous langkah-langkah dan anda bisa menulis ulang yang berfungsi seperti ini:

async function fetchHtmlAsText(url) {
    const response = await fetch(url);
    return await response.text();
}

Lihat mengambil dokumentasi API untuk rincian lebih lanjut.

Komentar (0)

Ketika menggunakan

$("#content").load("content.html");

Maka ingatlah bahwa anda tidak dapat "debug" di chrome secara lokal, karena XMLHttpRequest tidak dapat memuat -- Ini TIDAK berarti bahwa itu tidak bekerja, itu hanya berarti bahwa anda perlu untuk menguji kode anda pada domain yang sama aka. server anda

Komentar (2)

Anda dapat menggunakan jQuery :

$("#topBar").on("click",function(){
        $("#content").load("content.html");
});
Komentar (4)

mencoba

async function load_home(){
  content.innerHTML = await (await fetch('home.html')).text();
}
async function load_home() {
  let url = 'https://kamil-kielczewski.github.io/fractals/mandelbulb.html'

  content.innerHTML = await (await fetch(url)).text();
}
<div id="topBar"> <a href="#" onclick="load_home()"> HOME </a> </div>
<div id="content"> </div>
Komentar (0)
$("button").click(function() {
    $("#target_div").load("requesting_page_url.html");
});

atau

document.getElementById("target_div").innerHTML='';
Komentar (0)

Ada plugin ini di github yang memuat konten ke dalam sebuah elemen. Berikut ini adalah repo

https://github.com/abdi0987/ViaJS

Komentar (0)

Hal ini biasanya diperlukan ketika anda ingin menyertakan header.php atau halaman apapun.

Di Jawa itu's mudah terutama jika anda memiliki halaman HTML dan don't ingin menggunakan php menyediakan fungsi tetapi pada semua yang anda harus menulis fungsi php dan menambahkannya sebagai Java fungsi dalam tag script.

Dalam hal ini anda harus menulis tanpa fungsi yang diikuti oleh nama Saja. Script kemarahan fungsi kata dan memulai mencakup header.php I. e convert php memiliki fungsi untuk fungsi Java script tag dan menempatkan semua konten yang disertakan file.

Komentar (0)

Universal dapat digunakan kembali Murni JavaScript

Saya don't menggunakan framework atau library (klien saya mungkin jika mereka benar-benar ingin) meskipun saya platform web isn't dibebani secara berlebihan dan boros bandwidth. Fungsi di bawah ini adalah apa yang saya tulis untuk langsung add XML untuk setelah, sebelum, di dalam (menjadi elemen terakhir) atau ganti dan elemen yang ada. Tidak ada yang tidak dapat diandalkan sampah seperti innerHTML (yang di banyak browser mencari id "ditambahkan" dengan cara ini dapat't dapat ditemukan, oleh karena itu tidak dapat diandalkan). Berdiri sendiri prasyarat fungsi yang digunakan dalam contoh di bawah ini di bagian bawah posting ini.

  • Parameter pertama adalah posisi (setelah, sebelum, di dalam dan menggantikan).
  • Kedua unsur ini relatif elemen yang dapat menjadi referensi objek (misalnya id_(&#39;isi&#39;)) atau string untuk id dari sebuah elemen.
  • Parameter ketiga adalah string yang akan XML yang akan ditambahkan ke DOM. Perhatikan bahwa harus memiliki XML namespace dan bahwa anda tidak boleh memiliki lebih dari satu elemen akar (misalnya <div xmlns="http://www.w3.org/1999/xhtml"><p>segala sesuatu di sini</p></div>).

Fungsi

function xml_add(pos, e, xml)
{
 e = (typeof e == 'string' && id_(e)) ? id_(e) : e;

 if (e.nodeName)
 {
  if (pos=='after') {e.parentNode.insertBefore(document.importNode(new DOMParser().parseFromString(xml,'application/xml').childNodes[0],true),e.nextSibling);}
  else if (pos=='before') {e.parentNode.insertBefore(document.importNode(new DOMParser().parseFromString(xml,'application/xml').childNodes[0],true),e);}
  else if (pos=='inside') {e.appendChild(document.importNode(new DOMParser().parseFromString(xml,'application/xml').childNodes[0],true));}
  else if (pos=='replace') {e.parentNode.replaceChild(document.importNode(new DOMParser().parseFromString(xml,'application/xml').childNodes[0],true),e);}
  //Add fragment and have it returned.
 }
}

Pemahaman yang Tepat DOM Fungsi

Memuat XML melalui AJAX ke DOM benar membutuhkan XML namespace (xmlns="http://www.w3.org/1999/xhtml") pada elemen akar (mungkin anda tidak memiliki lebih dari satu elemen root atau jika anda melakukannya anda akan memiliki untuk iterate). Maka anda perlu menggunakan importNode. Seluruh fungsi ini hanya semantik di mana XML (AJAX, dari fungsi lain dll) yang akan ditempatkan relatif terhadap unsur-unsur lain dalam DOM.

Contoh Penggunaan

element.appendChild(new DOMParser().parseFromString('<div xmlns="http://www.w3.org/1999/xhtml">'+id_('post_body').value+'</div>'),'application/xml'.childNodes[0]);

Tambahkan XML setelah elemen tertentu:

xml_add('after', id_(push_current_id()).tag_('footer')[0], '<div class="hidden" id="editor_rich_temp"></div>');

Tambahkan XML sebelum elemen tertentu:

xml_add('before', $('#'+push_current_id()+' section')[0], '<h2 xmlns="http://www.w3.org/1999/xhtml"><span>Compose Message</span></h2>');

Tambahkan XML dalam elemen tertentu (untuk menjadi last child element):

xml_add('inside', $('body > header > nav')[1], xml);

JavaScript murni berdiri sendiri prasyarat fungsi

Ini adalah fungsi yang saya gunakan di platform untuk menghindari menghukum pengguna dengan lima salinan dari kerangka kerja/perpustakaan dan memastikan kinerja tinggi:

function $(o) {var r = false; if (document.querySelectorAll) {r = document.querySelectorAll(o);} return r;}

function class_(c) {return (document.getElementsByClassName(c)) ? document.getElementsByClassName(c) : false;}

function tag_(t) {return (document.getElementsByTagName(t)) ? document.getElementsByTagName(t) : false;}

Menggabungkan Fungsi Kustom

Jika anda ingin membersihkan profesional JavaScript anda're akan perlu menggunakan prototipe yang menakjubkan. Dalam contoh id_(&#39;contoh&#39;).tag_(&#39;td&#39;)[0].class_(&#39;baik&#39;)[0] bekerja banyak lebih mudah daripada bermain-main dengan $ di dalam loop.

Object.prototype.$ = function(c) {return (this.querySelectorAll && this.querySelectorAll(c) && this.querySelectorAll(c).length > 0) ? this.querySelectorAll(c) : false;}

Object.prototype.class_ = function(c) {return (this.getElementsByClassName && this.getElementsByClassName(c) && this.getElementsByClassName(c).length > 0) ? this.getElementsByClassName(c) : false;}

Object.prototype.tag_ = function(t) {return (this.getElementsByTagName && this.getElementsByTagName(t) && this.getElementsByTagName(t).length > 0) ? this.getElementsByTagName(t) : false;}

Penuh Peti Harta Karun

Saya memperbarui kode pada kesempatan langka (karena itu's rock solid, tidak "versi" tergantung). Dengan pemrograman JavaScript murni itu's mudah untuk menghindari besar-kinerja rendah kerangka kerja dan perpustakaan. https://www.jabcreations.com/docs/javascript/#functions

Komentar (0)

showhide.html





      <script type="text/javascript">
        function showHide(switchTextDiv, showHideDiv)
        {
          var std = document.getElementById(switchTextDiv);
          var shd = document.getElementById(showHideDiv);
          if (shd.style.display == "block")
          {
            shd.style.display = "none";
            std.innerHTML = "<span style=\"display: block; background-color: yellow\">Show</span>"; 
          }
          else
          {
            if (shd.innerHTML.length 
Komentar (1)

Jika file html anda tinggal secara lokal kemudian pergi untuk iframe, bukan <objek> tag. <objek> kategori tidak bekerja cross-browser, dan sebagian besar digunakan untuk Flash

Untuk ex : <iframe src="rumah.html" width="100" height="100"/>

Komentar (0)