Override window.open()
Override window.open()
我试图覆盖window.open()
,所以我试图找到一种在没有window.open()
的新窗口中打开链接的方法。
详细地说,我处于这样的情况:我有一个Silverlight Web部件,它使用HTMLWindow.Navigate()
在新窗口中打开超链接,所以我不能使用<a>
,因为我完全无法控制Web部件。唯一的方法是重写window.open()
。
例如,当我想在顶部窗口打开链接时,我像这样重写window.open()
:
window.open = function (open) {
return function (url, name, features) {
window.top.location = url;
return false;
};
}(window.open);
是否有类似的方法打开链接在新的窗口?非常感谢!
PS:我不能在这里使用锚,因为我重写了window.open()
对于这个问题我最后做了什么:
首先,我复制了window.open()
var _open = window.open;
然后我重写window.open()
函数。例如,假设"target"是一个接收querystring的变量。请注意,默认行为是在当前窗口中打开链接。
if (target == "top")
{
window.open = function (open) {
return function (url, name, features) {
window.top.location = url;
return false;
};
}(window.open);
}
else if (target == "blank")
{
window.open = function (open) {
return function (url, name, features) {
return open_(url, '_blank', features);
};
}(window.open);
}
从javascript单独你不能打开一个新的窗口没有使用window.open()
。此外,您无法影响窗口在新浏览器中的打开方式。这取决于浏览器的设置,是打开一个新选项卡还是一个新窗口。
您可以通过在a
-元素上定义<a
target="_blank"
href="..."></a>
来声明您想要一个新窗口,但是随后用户必须单击它。否则,如果你用javascript触发点击,你会遇到浏览器的弹出窗口拦截器。
相关文章:
- 直接下载文件,而不是从window.open(url)
- 如何将PDF作为二进制文件传递到window.open()
- 为什么window.open不打开一个以变量形式给出的链接
- 如何在`window.open`之后执行回调
- Windows.Open 在 window.Location 工作时不起作用
- javascript window.open将无法在Chrome控制台上工作
- window.open根据动态内容自动调整高度和宽度
- window.open使页面向上滚动
- window.open(url).print()在Safari中不起作用
- Javascript window.open()toolbar=no不起作用
- window.open尽管被用户触发,但仍无法在InternetExplorer中工作
- $.ajax().done()中的window.open和弹出窗口拦截器
- 如何在JS文件中添加wordpress permalink(onclick,window.open)
- window.open:是否可以通过修改DOM来打开一个新窗口
- 通过open.window传递php变量
- Javascript open.window 获取字段值,然后将值插入父窗口
- window.open(window.parent) possible?
- 使用 open.window() 在新窗口中打开 js 程序
- Javascript onbeforeunload to open window.open() popup
- Open.window()的文档.推荐从HTTPS站点转到HTTP站点空