从Fancybox iframe调用jQuery?

时间:2010-10-11 00:15:20

标签: javascript jquery iframe fancybox

我使用iframe在Fancybox中加载了一个页面。但是当我尝试在iframe内执行jQuery函数时,它将无法工作。如何访问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 个答案:

答案 0 :(得分:2)

您需要在iframe内再次包含jQuery,或尝试...

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

或者如果那个太长,请制作一个包装

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

答案 1 :(得分:1)

如果两个文档都依赖于同一个域,则可以通过在您的语句中添加“parent”来访问jQuery。

示例:

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

注意第二个参数设置为document。建议这样做,否则上下文将是父窗口的文档,而不是iframe内的文档。 但是,由于我不知道这种用途是否真的安全,特别是如果你使用外部插件,我宁愿另外包括。