Bagaimana saya bisa mengontrol gambar latar belakang dan warna elemen tubuh dalam suatu iframe
? Catatan, elemen tubuh tertanam memiliki kelas, dan iframe
merupakan halaman yang merupakan bagian dari situs saya.
Alasan saya membutuhkan ini adalah bahwa situs saya memiliki latar belakang hitam yang ditetapkan untuk tubuh, dan kemudian latar belakang putih yang ditugaskan untuk div yang berisi teks. Editor WYSIWYG menggunakan iframe
untuk menanamkan konten saat mengedit, tetapi itu tidak termasuk div, sehingga teks sangat sulit dibaca.
Tubuh iframe
saat di editor memiliki kelas yang tidak digunakan di tempat lain, jadi saya berasumsi ini diletakkan di sana sehingga masalah seperti ini dapat diselesaikan. Namun, ketika saya menerapkan gaya ke class.body
mereka tidak menimpa gaya yang diterapkan ke tubuh. Yang aneh adalah bahwa gaya muncul di Firebug, jadi saya tidak tahu apa yang terjadi!
Terima kasih
PEMBARUAN - Saya sudah mencoba solusi @ mikeq untuk menambahkan gaya ke kelas yang merupakan kelas tubuh. Ini tidak berfungsi ketika ditambahkan ke stylesheet halaman utama, tetapi tidak berfungsi ketika ditambahkan dengan Firebug. Saya berasumsi ini karena Firebug diterapkan ke semua elemen pada halaman sedangkan CSS tidak diterapkan dalam iframe. Apakah ini berarti menambahkan css setelah memuat jendela dengan JavaScript akan berhasil?
sumber
<div>
kaleng kadang-kadang menjadi solusi (jika diberi CORS-Header memungkinkan untuk itu) ... ... (dan "membersihkan" data yang dimuat dengan regexp pada ya, semua sudah rusak ...)Jawaban:
Iframe adalah 'lubang' di halaman Anda yang menampilkan halaman web lain di dalamnya. Isi iframe tidak dalam bentuk apa pun atau bagian dari halaman induk Anda.
Seperti yang telah dinyatakan orang lain, opsi Anda adalah:
sumber
Di bawah ini hanya berfungsi jika konten iframe berasal dari domain induk yang sama.
Skrip jquery berikut berfungsi untuk saya. Diuji pada Chrome dan IE8. Iframe bagian dalam mereferensikan halaman yang berada di domain yang sama dengan halaman induk.
Dalam kasus khusus ini, saya menyembunyikan elemen dengan kelas tertentu di iframe batin.
Pada dasarnya, Anda hanya menambahkan elemen 'style' ke 'head' iframe bagian dalam.
sumber
Anda tidak dapat mengubah gaya halaman yang ditampilkan dalam iframe kecuali Anda memiliki akses langsung dan dengan demikian kepemilikan html sumber dan / atau file css.
Ini untuk menghentikan XSS (Cross Site Scripting)
sumber
An
iframe
memiliki ruang lingkup lain, jadi Anda tidak dapat mengaksesnya ke gaya atau mengubah kontennya dengan javascript.Ini pada dasarnya "halaman lain".
Satu-satunya hal yang dapat Anda lakukan adalah mengedit CSS-nya sendiri, karena dengan CSS global Anda, Anda tidak dapat melakukan apa-apa.
sumber
Timpa CSS domain lain
iframe
Dengan menggunakan bagian dari jawaban SimpleSam5 , saya mencapai ini dengan beberapa iframe obrolan Tawk ( antarmuka penyesuaian mereka baik-baik saja tetapi saya perlu penyesuaian lebih lanjut).
Dalam iframe khusus ini yang muncul di perangkat seluler, saya harus menyembunyikan ikon default dan menempatkan salah satu gambar latar belakang saya. Saya melakukan yang berikut:
Saya tidak memiliki domain Tawk apa pun dan ini berfungsi untuk saya, jadi Anda dapat melakukan ini bahkan jika itu bukan dari domain induk yang sama (terlepas dari komentar Jeremy Becker tentang jawaban Sam).
sumber
Kode ini menggunakan JavaScript vanilla. Itu menciptakan
<style>
elemen baru . Ini menetapkan konten teks elemen itu menjadi string yang berisi CSS baru. Dan itu menambahkan elemen itu langsung ke kepala dokumen iframe.sumber
Blocked a frame with origin xxxxxxxxx from accessing a cross-origin frame.
Saya khawatir itu tidak akan berhasilJika Anda memiliki kendali atas halaman yang meng-host iframe dan halaman iframe, Anda dapat meneruskan parameter kueri ke iframe ...
Berikut adalah contoh untuk menambahkan kelas ke iframe berdasarkan apakah situs hosting itu mobile atau tidak ...
Menambahkan iFrame:
Di dalam iFrame:
sumber
Saya memiliki blog dan saya memiliki banyak kesulitan mencari tahu cara mengubah ukuran inti tertanam saya. Manajer pos hanya memungkinkan Anda menulis teks, menempatkan gambar, dan menyematkan kode HTML. Tata letak blog itu sendiri responsif. Itu dibangun dengan Wix. Namun, HTML yang disematkan tidak. Saya membaca banyak tentang bagaimana tidak mungkin untuk mengubah ukuran komponen di dalam tubuh iFrames yang dihasilkan. Jadi, inilah saran saya:
Jika Anda hanya memiliki satu komponen di dalam iFrame Anda, yaitu inti Anda, Anda hanya dapat mengubah ukuran inti. Lupakan iFrame.
Saya punya masalah dengan viewport, tata letak khusus untuk agen pengguna yang berbeda dan inilah yang memecahkan masalah saya:
Logikanya adalah untuk mengatur inti (atau komponen Anda) css berdasarkan agen pengguna. Pastikan untuk mengidentifikasi komponen Anda terlebih dahulu, sebelum mendaftar ke pemilih kueri. Silakan melihat bagaimana responsif bekerja .
sumber
Mungkin sudah berubah sekarang, tapi saya telah menggunakan stylesheet terpisah dengan elemen ini:
untuk berhasil memasang youtube iframe dengan gaya ... lihat posting blog di halaman ini .
sumber
berikan tubuh halaman iframe Anda ID (atau kelas jika Anda mau)
kemudian, juga di dalam halaman iframe, tetapkan latar belakang untuk itu dalam CSS
sumber