javascript - 未捕获的 TypeError : topFrame. window.changeSelectedBarStyle 不是一个函数,为什么?

标签 javascript jquery

这是我的函数changeSelectedBarStyle:

function changeSelectedBarStyle(tdId){
    $("#menuTable td").each(function(index){
        if(this.id == tdId){
            $(this).removeClass("menuPanel");
            $(this).addClass("menuPanelSelected");
        }else{
            $(this).removeClass("menuPanelSelected");
            $(this).addClass("menuPanel");
        }
    });
}

这是我从控制台得到的:Uncaught TypeError: topFrame.window.changeSelectedBarStyle is not a function

它会变成一张空白页。 但是,这个错误只在第一次出现。如果刷新页面,一切正常。

----------------编辑更多信息--------------------

这是调用它的函数,我添加了一些日志(显示页面何时加载正确,这次不是空白页面):

    function changeTopFrameBarStyle(pageType){
        topFrame.window.changeSelectedBarStyle(pageType);
        console.log(pageType);//job(it is correct)
        console.log(topFrame.window.changeSelectedBarStyle);//changeSelectedBarStyle(tdId)
        console.log(topFrame.window.changeSelectedBarStyle(pageType));//undefined
        console.log(topFrame.window);//Window webSiteTopMenu.jsp(this page is the function changeSelectedBarStyle exists)
    }

这是调用以下内容的页面:

$(document).ready(function() {  
    window.parent.changeTopFrameBarStyle("job");    

}

问题在于: $(文档).ready(函数()

因为在这发生之前,它正在使用这个:

window.onload= function(){
    window.parent.changeTopFrameBarStyle("people");
};

最佳答案

topFrame.window.changeSelectedBarStyle 可能未定义console.log(...) 进行验证。

可能是框架的内容尚未加载。在 window.onload 事件上访问 topFrame,这可确保加载 DOM、所有图像、脚本和框架。

请注意,jQuery 的 ready 事件仅在 DOM 加载后才会触发,因此此时框架内容尚未加载。

如果您尝试访问 iframewindow 对象,您可能正在寻找 contentWindow相反,属性(property)。

关于javascript - 未捕获的 TypeError : topFrame. window.changeSelectedBarStyle 不是一个函数,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37246160/

相关文章:

javascript - jQuery $.get 失败

javascript - React onClick 是否更像一个 JavaScript addEventListener 而不是一个标准的 JavaScript onclick 属性?

JavaScript 语句在 IE 中不起作用

JavaScript HTML - 用户选择时出现的额外必填表单字段

javascript - 如何在 AJAX 加载选项卡中初始化 jquery 函数?

c# - 在鼠标移出时关闭 AJAX 控制工具包 BallonPopupExtender

javascript - 单击链接时无法更改 div 的内容

javascript - 如何在 react 组件中打开引导模式?

jquery - 基于百分比的宽度 jQuery 动画

javascript - 在 HTML 表单中,我们可以在用户填写表单时验证文本字段吗