这是我的函数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");
}
});
}
这是我从控制台获得的:未捕获的TypeError:topFrame.window.changeSelectedBarStyle不是函数
它变成了一个空白页面。 但是,此错误仅在第一次显示。如果刷新页面,一切都很好。
----------------编辑更多信息---------------------
这是调用它的函数,我添加了一些日志(这次显示页面加载正确时不是空白页面):
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");
}
这是事情: $(文件)。就绪(函数()
因为在此之前,它正在使用:
window.onload= function(){
window.parent.changeTopFrameBarStyle("people");
};
答案 0 :(得分:2)
topFrame.window.changeSelectedBarStyle
可能未定义。 console.log(...)
要验证。
可能是框架的内容尚未加载。访问topFrame
事件window.onload
,确保加载DOM,所有图像,脚本和框架。
请注意,jQuery的ready
事件仅在加载DOM后触发,因此当时不会加载帧内容。
如果您尝试访问window
的iframe
对象,则可能正在寻找contentWindow
媒体资源。