Substituir window.open ()
Estou tentando substituirwindow.open()
, então estou tentando encontrar uma maneira de abrir o link em uma nova janela semwindow.open()
.
Em detalhes, estou em tal situação: Eu tenho uma Web Part do Silverlight que usaHTMLWindow.Navigate()
para abrir hyperlinks em uma nova janela, então não posso usar<a>
porque eu não tenho controle total sobre a Web part. A única maneira é substituirwindow.open()
.
Por exemplo, quando eu quero abrir o link na janela superior, eu sobrescrevowindow.open()
como isso:
window.open = function (open) {
return function (url, name, features) {
window.top.location = url;
return false;
};
}(window.open);
Existe um método semelhante para abrir o link em uma nova janela? Muito obrigado!
PS: Eu não posso usar âncora aqui porque estou dominandowindow.open()
O que eu fiz finalmente para este problema:
Em primeiro lugar, fiz uma cópia dowindow.open()
var _open = window.open;
Então eu anulo owindow.open()
função. Suponha que "target" seja uma variável que recebe querystring, por exemplo. Observe que o comportamento padrão é abrir o link na janela atual.
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);
}