使用contentWindow属性调用iframe方法时会打开一个新的页面

var topWindow = $(window.parent.document);
var videoListIframe = $('.RuoYi_iframe[data-id="/video/list"]', topWindow)[0]
videoListIframe.contentWindow.hidePlugin();    //隐藏插件

应该不会啊,hidePlugin(); 是什么函数?

你调用下videoListIframe.contentWindow.页面中别的函数看看。
 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

您好,调用别的函数也一样,函数里什么都不执行也一样;这些代码是在点击菜单的时候调用的

全局index.js文件

    $('.menuItem').on('click', menuItem);

    function menuItem() {
        // 获取标识数据
        var dataUrl = $(this).attr('href'),
        dataIndex = $(this).data('index'),
        menuName = $.trim($(this).text()),
        flag = true;
        $(".nav ul li, .nav li").removeClass("selected");
        $(this).parent("li").addClass("selected");
        if (dataUrl == undefined || $.trim(dataUrl).length == 0) return false;

        showHideVideoList(dataUrl);    // ←←在这里
        showHideVideoModal(dataUrl);
        showHideVideoMobile(dataUrl);

        // 选项卡菜单已存在
        $('.menuTab').each(function() {
            if ($(this).data('id') == dataUrl) {
                if (!$(this).hasClass('active')) {
                    $(this).addClass('active').siblings('.menuTab').removeClass('active');
                    scrollToTab(this);
                    // 显示tab对应的内容区
                    $('.mainContent .RuoYi_iframe').each(function() {
                        if ($(this).data('id') == dataUrl) {
                            $(this).show().siblings('.RuoYi_iframe').hide();
                            return false;
                        }
                    });
                }
                //再次点击菜单从新刷新页面
                refreshTab();
                flag = false;
                return false;
            }
        });
        // 选项卡菜单不存在
        if (flag) {
            var str = '<a href="javascript:;" class="active menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
            $('.menuTab').removeClass('active');

            // 添加选项卡对应的iframe
            var str1 = '<iframe class="RuoYi_iframe" name="iframe' + dataIndex + '" width="100%" height="100%" src="' + dataUrl + '" frameborder="0" data-id="' + dataUrl + '" seamless></iframe>';
            $('.mainContent').find('iframe.RuoYi_iframe').hide().parents('.mainContent').append(str1);

            $.modal.loading("数据加载中,请稍后...");

            $('.mainContent iframe:visible').load(function () {
            	$.modal.closeLoading();
            });

            // 添加选项卡
            $('.menuTabs .page-tabs-content').append(str);
            scrollToTab($('.menuTab.active'));
        }

        return false;
    }

// 显示隐藏视频列表页面的插件
    function showHideVideoList(currentId){
        // var topWindow = $(window.parent.document);
        var videoListIframe = $('.RuoYi_iframe[data-id="/video/list"]', topWindow)[0]

        // 如果存在 data-id = /video/list 的iframe 选项卡
        if(typeof(videoListIframe)!="undefined"){
            // 如果切换的选项卡不是视频列表,则隐藏插件
            if("/video/list" != currentId) {
                console.log("隐藏插件")
                videoListIframe.contentWindow.hidePlugin();    //隐藏插件
            }else{
                console.log("显示插件")
                videoListIframe.contentWindow.showPlugin();    //显示插件
            }
        }
    }

iframe: data-id = "/video/list"页面:

    // 隐藏插件
	function hidePlugin(){
		if (oWebControl != null){
			oWebControl.JS_HideWnd();  // 先让窗口隐藏,规避可能的插件窗口滞后于浏览器消失问题
		}
	}

	// 显示插件
	function showPlugin(){
		if (oWebControl != null){
			oWebControl.JS_ShowWnd();  // 先让窗口隐藏,规避可能的插件窗口滞后于浏览器消失问题
		}
	}

其实在切换项目里面的选项卡时也会调用这些方法,但是不会出现全屏的问题:

    // 点击选项卡菜单
    function activeTab() {
        if (!$(this).hasClass('active')) {
            var currentId = $(this).data('id');

            showHideVideoList(currentId);
            showHideVideoModal(currentId);
            showHideVideoMobile(currentId);
            // 显示tab对应的内容区

            $('.mainContent .RuoYi_iframe').each(function() {
                if ($(this).data('id') == currentId) {
                    $(this).show().siblings('.RuoYi_iframe').hide();
                    return false;
                }
            });
            $(this).addClass('active').siblings('.menuTab').removeClass('active');
            scrollToTab(this);
        }
    }

    // 点击选项卡菜单
    $('.menuTabs').on('click', '.menuTab', activeTab);