我正在开发一个不支持chrome / firefox的旧网站。 一个问题是代码可以在IE上运行,但不能运行chrome / firefox。
put 'parent.frames("snscont").location.href="../../../../../fts/main/account/INITIAL.html"';
在Chrome上,它表示未捕获类型错误:parent.frame不是函数。 任何jquery或现代代码都可以使这个支持chrome / firefox? 非常感谢。
答案 0 :(得分:1)
您可以使用以下代码将parent.frames
回退到旧的IE行为:
function isFunction(obj) {
return !!(obj && obj.constructor && obj.call && obj.apply);
}
if (parent.frames && !isFunction(parent.frames)) {
var originParentFrames = parent.frames;
parent.frames = function(name) {
return originParentFrames[name];
};
}
您的评论中的问题:
为什么要使用父级?
如果没有代码的上下文,很难回答这个问题。基本上,parent
引用当前窗口或子帧的父级,如果在没有父级的窗口上调用它,则它引用自身。您可以查看https://developer.mozilla.org/en-US/docs/Web/API/Window/parent了解更多详情(感谢@ jeetendra'答案)。
我猜您的代码是在iframe中运行的?如果确实如此,那么parent.frames(B)
中的A
是从iframe A引用iframe B的好方法。
父母是对象吗?
是的,parent
是附加在window
上的对象。您可以运行typeof parent
来获得结果object
。
什么是snscont?它是函数框架()的参数吗?
snscont
是您的iframe的名称。 parent.frames()
使用name来引用iframe对象。所以,是的,它作为参数传递。
后半部分从href开始意味着什么?它是否重定向到最后列出的页面?
是的,...location.href="..."
语句使iframe显示另一个网址。但我不认为redirect
在这里是准确的词。
答案 1 :(得分:0)
您可以参考https://developer.mozilla.org/en-US/docs/Web/API/Window/parent了解您的解决方案。 StackOverflow上几乎没有相同的重复问题。