未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
Uncaught TypeError: topFrame.window.changeSelectedBarStyle is not a function,why?
这是我的函数更改SelectedBarStyle:
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");
}
});
}
这是我从控制台得到的:未捕获类型错误: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");
}
问题在于:$(document).ready(function)
因为在此之前,它使用的是:
window.onload= function(){
window.parent.changeTopFrameBarStyle("people");
};
topFrame.window.changeSelectedBarStyle
很可能是未定义的。console.log(...)
进行验证。
可能是帧的内容尚未加载。在window.onload
事件上访问topFrame
,确保加载DOM、所有图像、脚本和帧。
请注意,jQuery的ready
事件是在只加载DOM之后激发的,因此此时不会加载帧内容。
如果您试图访问iframe
的window
对象,您可能正在查找contentWindow
属性。
相关文章:
- Javascript 对象的推荐构造函数是什么?
- JavaScript 中的“ScriptEngine”函数是什么?
- jQuery中的.proxy()函数是什么
- 删除 href 周围的文本的正确 jquery 函数是什么
- 弹出窗口的确切函数是什么
- javascript中的strord函数是什么?
- 访问cookie最可靠的JavaScript函数是什么?
- Node.js中的函数构造函数是什么
- 交叉过滤中的reduceAdd, reduceSum, reducerremove函数是什么?它们应该如何使用?
- 为什么console.trace()的结果以一个“匿名函数”结束?这个函数是什么?
- 数组字面量中的构造函数是什么?
- Javascript中类似php函数substr()的函数是什么?
- 参数中的匿名函数是什么意思?
- 拆分函数是什么样子的?
- jquery中. max()的等效函数是什么?
- 在Node Js中,tcp连接中socket的.on函数是什么?
- firefox浏览器(所有版本)中的.load()等效函数是什么?
- jQuery' width()函数的Javascript等效函数是什么?
- jQuery中的.selectmany()函数是什么?
- setTimeout执行的函数是什么?