Tutaj próbuję otworzyć adres URL w nowym oknie za pomocą Window.Open

Mam listę elementów kotwicznych z pewnym adresem URL, gdy kliknął na te znaczniki kotwiczne, JavaScript powinien uzyskać wartość href = "" i przekazać wartość do funkcji JavaScript.

Oto kod, co zrobiłem:

<html>
<head>
</head>
<script>
var a;
    function popitup(a)
    {
        window.open(a,
        'open_window',
        'menubar=no, toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, dependent, width=800, height=620, left=0, top=0')
    }
</script>
<body>
<form name="popup" >
<a href="http://www.yahoo.com" onclick="popitup(this.value)">yahoo</a>
<a href="http://www.google.com" onclick="popitup(this.value)">Google</a>
<a href="http://www.msn.com" onclick="popitup(this.value)">MSN</a>
</form>
</body>
</html>

Kiedy klikam Yahoo, www.yahoo.com powinien zostać otwarty w nowym oknie .. Podobnie wszystkie

Ale teraz, gdy kliknął na te linki, otrzymuję błąd "Nie znaleziono serwera" w nowym oknie.

Jak mogę to rozwiązać?

3
MintY 22 listopad 2013, 16:21

3 odpowiedzi

Najlepsza odpowiedź

Masz następujące problemy

  1. Przestrzenie w Partms.
  2. Większość przeglądarek zignoruje status = No i więcej - na przykład paski przewijania
  3. Postępuj zgodnie z linkiem, nawet jeśli otworzysz okno - zwróć fałszywe lub jak pokazuję, false, jeśli popup wykonał pracę, prawda, jeśli nie
  4. Nie ma potrzeby formularza. Linki nie są formami elementów i nie mają wartości, ale href

Jeśli nie masz blokada popup i nie masz "otwartych nowych okien w zakładkach", ten kod może działać w przeglądarce. Jeśli jest blokowiec, link nadal działa

Live Demo

<html>
<head>
</head>
<script>
function popitup(link) {
  var w = window.open(link.href,
        link.target||"_blank",
        'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,dependent,width=800,height=620,left=0,top=0');
  return w?false:true; // allow the link to work if popup is blocked
 }
</script>
<body>
<a href="http://www.yahoo.com" onclick="return popitup(this)">yahoo</a>
<a href="http://www.google.com" onclick="return popitup(this)">Google</a>
<a href="http://www.msn.com" onclick="return popitup(this)" target="MSN">MSN</a>
</body>
</html>

Te przystępne są to, czego użyłem

'resizable,width=800,height=620,left=0,top=0'
10
mplungjan 14 maj 2020, 21:23

Ty this.href zamiast this.value w rękawach onclick. Atrybut href tagu kotwicy nie jest jego wartością.

2
Konstantin Dinev 22 listopad 2013, 12:23
<html>
<head>
</head>
<script>
var a;
    function popitup(a)
    {
        window.open(a,
        'open_window',
        'menubar=no, toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, dependent, width=800, height=620, left=0, top=0')
    }
</script>
<body>
<form name="popup" >
<a href="http://www.yahoo.com" onclick="popitup(this.href)">yahoo</a>
<a href="http://www.google.com" onclick="popitup(this.href))">Google</a>
<a href="http://www.msn.com" onclick="popitup(this.href))">MSN</a>
</form>
</body>
</html>

PRÓBNY

1
Sridhar R 22 listopad 2013, 12:23