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);
}

questionAnswers(1)

yourAnswerToTheQuestion