2014-04-29 12 views
13

Kiedy używam window.open ("www.google.com", "_blank");window.open() po prostu dodaje adres URL do mojego bieżącego adresu URL

window.open("www.google.com", "_blank"); 

Nowa karta jest otwarty, ale adres URL nie jest "www.google.com", to "= URL-i-to-at =/www.google.com".

To jest fragment kodu (i jedyny odpowiedni kod). http://jsfiddle.net/FUYTY/

W jsfiddle zachowuje się nieco inaczej, ale nadal nie działa tak, jak powinien.

Co robię źle?

+2

'www.google.com' będzie ścieżką lokalną, odnosząc się na przykład do katalogu o tej samej nazwie na twoim serwerze. Tym, co musisz połączyć z domeną zewnętrzną, jest bezwzględny adres URL, a więc coś w rodzaju 'http: // www.google.com /'. – CBroe

+5

Nie wiem, dlaczego jest to tak mocno odrzucane. To ważne pytanie z jasnym rozwiązaniem. – Alex

Odpowiedz

14

Chciałeś dostęp do dokumentu głównego serwera www.google.com, która odbywa się za pomocą adresu URL http://www.google.com/. Zamiast tego podałeś względny adres URL dla dokumentu www.google.com.

+1

Świetne, dzięki! Dlaczego jednak uwzględniacie http: //? HTML/JS lub cokolwiek kontroluje, szuka http, a jeśli go nie znajdzie, interpretuje to jako względny URL? –

+2

Może pomoże przykład. 'window.open' akceptuje względne i bezwzględne adresy URL. Jeśli wywołasz 'window.open (" popup.html "," _blank ")' z 'http: // www.example.com/dir/foo.html', otworzy się' http: //www.example. com/dir/popup.html'. Jeśli wywołasz 'window.open (" www.google.com "," _blank ")' z tej samej strony, otworzy się 'http: // www.example.com/dir/www.google.com'. Przeglądarka nie ma możliwości dowiedzenia się, że faktycznie chcesz "http: // www.google.com /", gdy mówisz, że chcesz "http: // www.example.com/dir/www.google.com". – ikegami

1

Wstęp adresów URL z http://

3

spróbuj dodać http: // wcześniej (patrz Fiddle http://jsfiddle.net/lkritchey/FUYTY/3/)

$(document).ready(function() { 
    $('#mybtn').on('click', function() { 
     window.open("http://www.google.com", '_blank'); 
    }); 
}); 

Niektórzy więcej informacji: Jeśli umieścisz wcześniej znak "/", dodaje on ciąg do głównego adresu URL. Jeśli po prostu podasz ciąg znaków, zostanie on dołączony do bieżącego pełnego adresu URL. Jeśli podasz http: // lub https: //, będziesz używał tylko tego, co wstawisz do swojego ciągu (np. http://www.google.com)

Powiązane problemy