Cara memaksa tautan dari iframe dibuka di jendela induk


Jawaban:


617

Saya menemukan solusi terbaik adalah dengan menggunakan tag dasar . Tambahkan yang berikut ini ke kepala halaman di iframe:

<base target="_parent">

Ini akan memuat semua tautan pada halaman di jendela induk. Jika Anda ingin tautan Anda dimuat di jendela baru, gunakan:

<base target="_blank">

Tag ini didukung penuh di semua browser.


4
Bagaimana cara ongkos lintas-browser ini?
Charlie Schliesser

3
@Wilf Saya tidak begitu benar:;) <base target>harus datang sebelum <a href>, karena itu menetapkan konteks penelusuran default untuk tautan berikut; <base href>harus muncul sebelum referensi URL apa pun ( <* href> <* src> <form action> <object data>...) karena ia menetapkan URL dasar yang dibandingkan dengan URL relatif yang diselesaikan.
sam

5
mengapa Anda menjawab pertanyaan ini setahun setelah saya menjawabnya, dengan jawaban yang sama persis? tapi kamu terpilih. ini sangat aneh.
vsync

5
Saya pikir itu karena jawaban Anda membuka tautan di jendela baru, sedangkan jawaban saya membukanya di jendela induk iframe, yang merupakan pertanyaan awal. Maaf mencuri guntur Anda!
Chris Vasselli

1
Perhatikan bahwa <basetag tidak memiliki penutup sesuai dengan spesifikasi w3.org/TR/html5/document-metadata#the-base-element jadi seharusnya<base target="_parent" >
Mark Schultheiss

147

Gunakan atribut-target:

<a target="_parent" href="http://url.org">link</a>

1
Saya mencoba ini, terbuka di jendela baru
Haim Evgi

3
+1 dari saya, target dasar = "_ parent" berfungsi tetapi target = "_ parent" tidak pernah gagal untuk saya!

7
<base target="_blank">ok, tapi pertanyaannya di sini adalah tentang satu tautan, bukan tentang mengubah perilaku semua tautan di iframe. Bagi saya ini adalah jawaban yang benar.
kriskodzi

34

Dengan JavaScript:

window.parent.location.href= "http://www.google.com";

28

Anda dapat menggunakan opsi apa saja

dalam hal hanya halaman induk:

jika Anda ingin membuka semua tautan ke halaman induk atau iframe induk, maka Anda menggunakan kode berikut di bagian kepala iframe:

<base target="_parent" />

ATAU

jika Anda ingin membuka tautan tertentu ke halaman induk atau iframe induk, maka Anda menggunakan cara berikut:

<a target="_parent" href="http://specific.org">specific Link</a>
<a  href="http://normal.org">Normal Link</a>

ATAU

dalam kasus iframe bersarang:

Jika ingin membuka semua tautan ke jendela browser (redirect di url browser), maka Anda menggunakan kode berikut di bagian kepala iframe:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
    $(window).load(function(){
        $("a").click(function(){
            top.window.location.href=$(this).attr("href");
            return true;
        })
    })
</script>

ATAU

jika Anda ingin membuka tautan tertentu ke jendela browser (redirect di url browser), maka Anda menggunakan cara berikut:

<a  href="http://specific.org"   target="_top" >specific Link</a>

atau

<a  href="javascript:top.window.location.href='your_link'">specific Link</a>
<a  href="javascript:top.window.location.href='http://specific.org'">specific Link</a>
<a  href="http://normal.org">Normal Link</a>

1
Jawaban yang bagus, saya hanya perlu menggunakan ini untuk tautan tertentu, namun jawaban yang diterima hanya menjelaskan cara mengubah target untuk semua tautan di halaman. Terima kasih
dading84

15

Ada elemen HTML yang disebut baseyang memungkinkan Anda untuk:

Tentukan URL default dan target default untuk semua tautan di halaman:

<base target="_blank" />

Dengan menentukan _blankAnda memastikan semua tautan di dalam iframe akan dibuka di luar.


Apakah ini diwarisi dalam iframe bersarang?
beppe9000


7

Coba target="_parent" atribut di dalam anchor tag.


Saya mencoba ini, terbuka di jendela baru
Haim Evgi

4
Coba target = "_ top". Iframe mungkin mengandung iframe yang bersarang? Atau tautan sebenarnya dibuka oleh javascript pada acara onclick?
Wah

5

Jika Anda menggunakan iframe di halaman web Anda, Anda mungkin mengalami masalah saat mengubah seluruh halaman melalui hyperlink HTML (anchor tag) dari iframe. Ada dua solusi untuk mengatasi masalah ini.

Solusi 1. Anda dapat menggunakan atribut target dari tag anchor seperti yang diberikan dalam contoh berikut.

<a target="_parent" href="http://www.kriblog.com">link</a>

Solusi 2. Anda juga dapat membuka halaman baru di jendela induk dari iframe dengan JavaScript.

<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">

Ingat ⇒ target="_parent"telah usang dalam XHTML, tetapi masih didukung dalam HTML 5.x.

Lebih banyak dapat dibaca dari tautan berikut http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html


4

Solusi yang paling serbaguna dan paling lintas-browser adalah untuk menghindari penggunaan tag "base", dan alih-alih menggunakan atribut target dari tag "a":

<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>

Itu <base> tag kurang fleksibel dan browser tidak konsisten dalam persyaratan mereka untuk penempatannya dalam dokumen, membutuhkan lebih cross-browser pengujian. Tergantung pada proyek dan situasi Anda, mungkin sulit atau bahkan sama sekali tidak layak untuk mencapai penempatan <base>tag lintas-browser yang ideal .

Melakukan ini dengan target="_parent"atribut <a>tag tidak hanya lebih ramah browser, tetapi juga memungkinkan Anda untuk membedakan antara tautan yang ingin Anda buka di iframe, dan yang ingin Anda buka di induknya.


3

<a target="parent">akan membuka tautan di tab / jendela baru ... <a target="_parent">akan membuka tautan di jendela induk / saat ini, tanpa membuka tab / jendela baru. Don't_forget_that_underscore!


2

Yah aku temukan

<base target="_parent" />

Ini berguna untuk membuka semua tautan iframe yang terbuka di iframe.

Dan

$(window).load(function(){
    $("a").click(function(){
        top.window.location.href=$(this).attr("href");
        return true;
    })
})

Ini dapat kita gunakan untuk seluruh halaman atau bagian tertentu dari halaman.

Terima kasih atas bantuan Anda.


1

Mencoba target="_top"

<a href="http://example.com" target="_top">
   This link will open in same but parent window of iframe.
</a>

tidak "_top"sama dengan "_parent"?
svelandiag

0
   <script type="text/javascript"> // if site open in iframe then redirect to main site
        $(function(){
             if(window.top.location != window.self.location)
             {
                top.window.location.href = window.self.location;
             }
        });
    </script>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.