Rumah  >  Soal Jawab  >  teks badan

Menetapkan window.name dalam JavaScript untuk menggunakan <a target='name'> kemudian dari halaman lain?

Dalam tetingkap, seperti foo.example.com:

Kemudian dalam tetingkap lain, kemudian, contohnya bar.example.com:

GOFOO

Adakah ini berfungsi? Adakah terdapat cara untuk kembali ke tetingkap yang pada asalnya tidak dinamakan dengan target=''?

P粉821808309P粉821808309398 hari yang lalu578

membalas semua(1)saya akan balas

  • P粉434996845

    P粉4349968452023-09-17 22:32:37

    Atribut nama tetingkap sememangnya boleh ditetapkan dalam JavaScript. Walau bagaimanapun, ia tidak berfungsi seperti yang anda bayangkan.

    Dalam HTML, atribut sasaran elemen digunakan untuk menentukan tempat untuk membuka dokumen yang dipautkan. Nilai atribut ini boleh menjadi:

    _blank: Buka dokumen yang dipautkan dalam tetingkap atau tab baharu. _self: Buka dokumen yang dipautkan dalam bingkai yang sama seperti apabila diklik (ini adalah lalai). _parent: Buka dokumen yang dipautkan dalam bingkai induk. _top: Buka dokumen yang dipautkan di seluruh badan tetingkap. nama bingkai: Buka dokumen yang dipautkan dalam bingkai yang dinamakan. Oleh itu, nilai atribut sasaran ditafsirkan sebagai nama bingkai, bukan window.name. Mereka tidak berkaitan langsung.

    Walau bagaimanapun, window.name memainkan peranan tertentu dalam komunikasi merentas tetingkap. Apabila anda menavigasi dari satu halaman ke halaman yang lain, window.name kekal sama (walaupun semasa menavigasi merentasi domain) sehingga tetingkap atau tab ditutup, atau tetingkap atau tab menavigasi ke domain lain di mana halaman window.name dikosongkan. Tetapi ia tidak akan berfungsi seperti yang anda cuba gunakan dalam contoh anda.

    Perlu diambil perhatian bahawa atribut window.name digunakan terutamanya untuk pengaturcaraan skrip, bukan sebagai cara untuk merujuk tetingkap antara halaman melalui tag .

    Apa yang anda cuba capai - merujuk tetingkap/tab sedia ada daripada tetingkap/tab lain - selalunya tidak dapat dilakukan secara langsung disebabkan oleh pengehadan Dasar Asal Sama dan sekatan ke atas komunikasi antara tetingkap atas sebab keselamatan.

    Walau bagaimanapun, anda boleh menggunakan kaedah lain, seperti menggunakan localStorage, sessionStorage atau postMessage untuk mencapai beberapa bentuk komunikasi antara tetingkap atau antara tab, bergantung pada keperluan anda.

    balas
    0
  • Batalbalas