Rumah  >  Soal Jawab  >  teks badan

Berebut elemen HTML sebelum pelayar cuba memaparkannya. Adakah ini kes penggunaan sah yang jarang berlaku untuk "document.write"?

Saya mempunyai kawasan pengepala pada halaman web saya yang mempunyai beberapa imej latar belakang yang melingkar melaluinya.

Ia adalah peleraian yang agak tinggi dan berada di atas lipatan jadi saya tidak mahu penyemak imbas mula memuatkan sebarang imej selain daripada yang pertama.

Tapi nak juga randomkan susunan gambar.

Masalahnya ialah saya menggunakan hos web statik (Netlify).

Beberapa pendekatan yang saya pertimbangkan:

Apa yang saya mahu lakukan ialah menjalankan beberapa kod JS, menjalankan beberapa logik pendek dan menambah beberapa penanda pada strim sebelum penyemak imbas melihat keseluruhan respons HTML. Saya kemudiannya boleh menyediakan pesanan standard dalam

Saya dapati itulah yang document.write lakukan, bukan?

Semua sumber kata elak macam tulah document.write. Tetapi saya tertanya-tanya sama ada ini adalah kes penggunaan sah yang jarang berlaku?

<html>
  <body>
    <p>This seems to work, and I kind of think it's not a terrible idea.</p>
    <script type="application/javascript">
      // Standard Fisher-Yates shuffle; not relevant
      function shuffle(array) { let i = array.length, j; while (i != 0) { j = Math.floor(Math.random() * i); i--; [array[i], array[j]] = [array[j], array[i]]; } return array; }

      const paras = [
        "<p>para 1</p>",
        "<p>para 2</p>",
        "<p>para 3</p>",
        "<p>para 4</p>",
      ];
      shuffle(paras);
      document.write(paras.join(""));
    </script>
    <noscript>
      <p>para 1</p>
      <p>para 2</p>
      <p>para 3</p>
      <p>para 4</p>
    </noscript>
    <p>Change my mind.</p>
  </body>
</html>

Adakah ini idea yang tidak baik? kenapa? Adakah terdapat cara yang lebih baik untuk mencapai hasrat saya?

P粉752290033P粉752290033283 hari yang lalu433

membalas semua(1)saya akan balas

  • P粉349222772

    P粉3492227722024-01-11 16:07:11

    Ya, itu bukan idea yang bagus. Kaedah ini sangat lama dan mempunyai tingkah laku khusus yang mungkin berbeza dari penyemak imbas ke penyemak imbas. Lihat https://developer.mozilla.org/en- US/docs/Web/API/Document/write untuk mendapatkan maklumat lanjut.

    Hanya guna kaedah moden seperti:

    Tunggu. Susun elemen secara rawak kerana ini adalah selamat pemapar/pelayar.

    Satu cadangan untuk kes penggunaan khusus anda walaupun: penyemak imbas perlu memuatkan JavaScript terlebih dahulu agar ia berfungsi seperti yang anda mahu, tetapi itu mungkin tidak berlaku. Imej mungkin masih dimuatkan dalam susunan asalnya muncul dalam sumber HTML. Saya akan mengesyorkan memindahkan logik ini ke pelayan jika boleh. Akhirnya, mana-mana Javascript mungkin tidak berfungsi untuk kes penggunaan anda. Anda mungkin tidak memasukkan imej dalam dokumen itu sendiri dan menambahkannya melalui JS (pada beban rawak), yang akan menjadi pendekatan pilihan saya.

    balas
    0
  • Batalbalas