2010-10-11 1 views
2

Я загрузил страницу в Fancybox, используя iframe. Но когда я пытаюсь выполнить функции jQuery в этом iframe, это не сработает. Как получить доступ к странице или контенту iframe, чтобы я мог выполнить jQuery на этой странице? Я пробовал это ниже, но не работает.Вызов jQuery из Fancybox iframe?

jQuery(document).ready(function(){ 
parent.jQuery("#showcasef", jQuery.browser.msie ? parent.jQuery('body')[0] : parent.jQuery(document)).live('submit', function(e) { 
        e.preventDefault(); 
     return false; 
     var pho_id = jQuery('#pho_id').attr('value'); 
     var showcase =jQuery("#showcase_pho option:selected").val(); 
     var action = "showcasep"; 
     alert("here"); 


    } 
);     

});

ответ

2

Вам нужно будет включить JQuery снова внутри этого iframe или попробовать ...

parent.$('body').text('Does it work?'); 

Или, может быть, если это слишком долго, сделать обертку

function $() { 
    return parent.jQuery.call(this, arguments); 
} 
+0

Спасибо, но не может заставить его работать. ДОЛЖНО все еще делать что-то неправильно. Я предоставляю образец кода выше, если это помогает. Спасибо! –

+0

@Pjack Является ли 'iframe' в том же домене? Кроме того, вы возвращаете false из функции во второй строке. Это остановит остальную часть анонимной функции. – alex

+0

Да, он находится в том же домене. К сожалению, я переместил его туда, чтобы что-то проверить, я переместил его до конца. Однако это все еще не работает. Thx –

1

Если оба документа зависят от в том же домене, вы можете получить доступ к jQuery, добавив «родительский» к вашему утверждению.

Пример:

<body> 
<script> 
alert(parent.$('body',document).html()) 
</script> 
</body> 

Обратите внимание на второй параметр установлен в документе. Это рекомендуется, иначе контекст будет документом родительского окна, а не документом внутри iframe. Но, поскольку я не знал, действительно ли такое использование действительно безопасно, особенно если вы используете внешние плагины, я бы предпочел дополнительный включительно.