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 中),因为您在 documentwindow 而不是 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。我必须有啥替代方法才能使其与其他浏览器一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

gwt 2.4.0仅适用于IE的空白页

JQuery $(this).text().length 仅适用于 IE,不适用于 Chrome、IE 或 FF [重复]

CSS 仅适用于IE7的CSS

日期选择器 html5 标记不适用于 Mozilla、IE 浏览器。但它仅适用于 Chrome

仅适用于 Chrome 的 CSS? [关闭]

在 CSS 上使用图像样式的复选框和单选仅适用于 Chrome