Вызовите jQuery из фреймворка Fancybox? - PullRequest
2 голосов
/ 11 октября 2010

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

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 ]

2 голосов
/ 11 октября 2010

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

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

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

function $() {
     return parent.jQuery.call(this, arguments);
}
1 голос
/ 11 октября 2010

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

Пример:

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

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

...