parent.navigate 仅适用于 IE。我必须有啥替代方法才能使其与其他浏览器一起使用?
Posted
技术标签:
【中文标题】parent.navigate 仅适用于 IE。我必须有啥替代方法才能使其与其他浏览器一起使用?【英文标题】:parent.navigate only works in IE. What alternative do I have to make it work with other browsers?parent.navigate 仅适用于 IE。我必须有什么替代方法才能使其与其他浏览器一起使用? 【发布时间】:2013-08-02 23:29:24 【问题描述】:我有一个在 IE 中运行良好的锚标记。这是一个例子(为了清楚起见,我省略了一些额外的参数)
<a href="javascript:void(0)" onclick="parent.navigate('wizard.aspx?Modal=Yes')">Add</a>
不幸的是,parent.navigate 在其他浏览器(例如 chrome)中似乎不起作用。我收到的错误是:Uncaught TypeError: Object [object global] has no method 'navigate'
我已经在网上搜索了一个替代的跨浏览器解决方案,但无法成功地使其他任何东西发挥作用。我已经尝试过 window.location、window.location.href 但似乎没有任何效果。
有什么想法吗?谢谢!
更新:此锚标记位于 iframe 中(它也是wizard.aspx 的一部分)。链接最终所做的是更新框架内的某些内容。但无论如何,我正在寻找的只是 parent.navigate 的替代品,因此它可以在 IE 之外的其他浏览器中工作。而且我已经研究了其他堆栈溢出文章中的 window.location 和 window.location.href,但它们显然不起作用,因此我发布了一个问题。
最终更新:工作代码。
<a href="javascript:void(0)" onclick="parent.location.href='wizard.aspx?Modal=Yes')">Add</a>
【问题讨论】:
Should I use window.navigate or document.location in JavaScript? 的可能重复项 如前所述,此解决方案无效。 @univegar304 正如所写,它不应该工作(在 iframe 中),因为您在document
或 window
而不是 parent
上运行。 parent.location.href="..."
有效吗?
不,它没有。未捕获的类型错误:对象 [对象位置] 的属性“href”不是函数
@univegar304 停止使用括号。对于location.href
,您需要使用赋值运算符。 parent.location.href = "..."
,不是parent.location.href("...")
。
【参考方案1】:
window.location.href = 'URL';
是改变当前窗口位置的标准实现。
.navigate
不适用于所有浏览器。
【讨论】:
谢谢。我已经尝试过该解决方案,但正如我所说,这也不起作用。它给了我一个类似的错误。 他们需要在未来的版本中删除这些无用的方法-属性。【参考方案2】:试试
<a href="javascript:void(0)" onclick="window.parent.location = 'wizard.aspx?Modal=Yes'">Add</a>
【讨论】:
不走运。未捕获的类型错误:对象 [对象全局] 的属性“位置”不是函数 @univegar304 这个错误看起来很奇怪,考虑到这段代码没有使用location
作为函数。您是否错误地调用了window.parent.location("...")
(即,尝试将其作为函数调用,而不是使用=
设置其值)?以上是关于parent.navigate 仅适用于 IE。我必须有啥替代方法才能使其与其他浏览器一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
JQuery $(this).text().length 仅适用于 IE,不适用于 Chrome、IE 或 FF [重复]