Override window.open ()
Próbuję zastąpićwindow.open()
, więc próbuję znaleźć sposób na otwarcie linku w nowym oknie bezwindow.open()
.
W szczegółach jestem w takiej sytuacji: mam składnik Web Silverlight, który używaHTMLWindow.Navigate()
aby otworzyć hiperłącza w nowym oknie, więc nie mogę używać<a>
ponieważ nie mam żadnej kontroli nad częścią internetową. Jedynym sposobem jest zastąpieniewindow.open()
.
Na przykład, gdy chcę otworzyć link w górnym oknie, zastępujęwindow.open()
lubię to:
window.open = function (open) {
return function (url, name, features) {
window.top.location = url;
return false;
};
}(window.open);
Czy istnieje podobna metoda otwierania łącza w nowym oknie? Dziękuję Ci bardzo!
PS: Nie mogę tu używać kotwicy, ponieważ nadpisujęwindow.open()
Co w końcu zrobiłem z tym problemem:
Po pierwsze, zrobiłem kopięwindow.open()
var _open = window.open;
Następnie zastępujęwindow.open()
funkcjonować. Przypuśćmy, że „cel” jest zmienną, która otrzymuje kwerystring, na przykład. Zauważ, że domyślnym zachowaniem jest otwarcie łącza w bieżącym oknie.
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);
}