Fungsi pemicu onclick Javascript tetapi biarkan perilaku default terus berjalan

Begini skenarionya, saya memiliki halaman dengan tombol yang membuka jendela iframe fancybox. Di dalam konten iframe terdapat tautan yang akan dibuka di jendela baru menggunakan target="_blank". Saya ingin klik memicu fungsi javascript untuk menutup jendela fancybox serta membuka jendela baru.

Dengan menggunakan jquery saya telah mengikat fungsi klik sederhana yang memanggil parent.$.fancybox.close(); tetapi ini tidak mengembalikan klik kembali ke browser untuk mengaktifkan tautan di jendela baru.

Saya tidak ingin menggunakan window.open karena 99% diblokir, saya hanya perlu perilaku default terjadi.

Bagaimana saya bisa memanggil fungsi tutup onclick sambil membiarkan perilaku normal terjadi?

Sunting

Menambahkan kode:

Halaman yang membuka iframe fancybox.

<a href="http://something.com" id="OpenIframeLink">open fancybox</a>
<script>
$("#OpenIframeLink").fancybox({
    'padding': '20',
    'width': 450,
    'height': 550,
    'scrolling': 'no',
    'type': 'iframe',
    'href': '/content.asp?url=' + encodeURIComponent($("#OpenIframeLink").attr('href')),
    'showCloseButton': false
});
</script>

Sekarang kode ini ada di halaman content.asp di dalam jendela iframe fancybox

<div id="message">
    <a href="http://something.com" target="_blank">click me</a>
</div>

<script type="text/javascript">
    $('#message a').click(function() {
      parent.$.fancybox.close();

      //now it should open the new window as a standard default click
      //as if this function wasn't bound to the click
    });
</script>

person DAC84    schedule 18.10.2012    source sumber
comment
dapatkah Anda menunjukkan kode atau membuat biola?   -  person Riz    schedule 18.10.2012
comment
Apakah halaman yang dimuat ke iframe berasal dari domain lain?   -  person Rango    schedule 18.10.2012
comment
Kode ditambahkan dan tidak, itu berasal dari domain yang sama.   -  person DAC84    schedule 18.10.2012
comment
Maaf, masalah Anda tidak ada solusinya karena halaman tersebut berasal dari domain lain. Skrip laman Anda tidak diperbolehkan berinteraksi dengan laman semacam ini karena kebijakan lintas asal.   -  person Rango    schedule 18.10.2012
comment
Saya tidak jelas dalam kode saya di sana. Konten dalam iframe tidak berasal dari href. Saya akan menambahkan lebih banyak kode.   -  person DAC84    schedule 18.10.2012
comment
OKE. Mengapa Anda tidak memuat konten Something.com langsung ke iframe yang sama?   -  person Rango    schedule 18.10.2012


Jawaban (1)


Periksa tautan ini: http://www.techfoobar.com/2012/jquery-programmatically-clicking-a-link-and-forcing-the-default-action

Penafian: Ini adalah artikel yang saya tulis.

Teknik ini melibatkan pembuatan elemen form dengan cepat dengan href tautan sebagai action dan target tautan sebagai atribut target dan kemudian memicu pengirimannya melalui kode (yang untungnya diizinkan oleh browser)

person techfoobar    schedule 18.10.2012