Kiedy użytkownik kliknie łącze, muszę zaktualizować pole w bazie danych, a następnie otworzyć żądane łącze w nowym oknie. Aktualizacja nie stanowi problemu, ale nie wiem, jak otworzyć nowe okno bez konieczności kliknięcia innego hiperłącza.
<body onLoad="document.getElementById('redirect').click">
<a href="http://www.mydomain.com?ReportID=1" id="redirect" target="_blank">Report</a>
</body>
javascript
Phillip Senn
źródło
źródło
target="_top"
nie otwiera się w nowym oknie -target="_blank"
nie.Odpowiedzi:
Drugi parametr jest opcjonalny i jest nazwą okna docelowego.
źródło
window.open
robi to, cotarget="_blank"
robi - otwiera adres URL w nowym oknie.To może pomóc
źródło
Wiem, że to już załatwiona i rozwiązana umowa, ale oto, czego używam do rozwiązania problemu w mojej aplikacji.
Zasadniczo chodzi o to, że sprawdzam, czy link ma
target=_blank
atrybut. Jeśli tak się nie stanie, zatrzymuje wywołanie łącza, ustawia je tak, aby otwierało się w nowym oknie, a następnie programowo je klika.Możesz pójść o krok dalej i pominąć zatrzymywanie oryginalnego kliknięcia (i sprawić, by kod był o wiele bardziej zwarty), próbując tego:
Jeśli używasz jQuery do abstrahowania od implementacji dodawania atrybutu między przeglądarkami, powinieneś użyć tego zamiast
e.target.setAttribute("target", "_blank")
:Być może będziesz musiał go przerobić, aby pasował do twojego konkretnego przypadku użycia, ale oto jak podrapałem swój własny swędzenie.
Oto demo tego w akcji, z którym możesz zadzierać.
(Odnośnik w jsfiddle powraca do tej dyskusji .. nie potrzeba nowej karty :))
źródło
Osobiście wolę używać poniższego kodu, jeśli dotyczy pojedynczego łącza. W przeciwnym razie najlepiej będzie, jeśli utworzysz funkcję z podobnym kodem.
Zacząłem używać tego do ominięcia ścisłego testu XHTML W3C.
źródło
Tak to robię z jQuery. Mam klasę dla każdego linku, który chcę otworzyć w nowym oknie.
źródło
Możesz wyodrębnić href ze znacznika a:
źródło
Może to pomóc w otwieraniu wszystkich linków do stron :
Otworzy się każdy
<a href="" class="myClass"></a>
elementy linków do innej karty, tak jakbyś kliknął każdy z nich.Wystarczy wkleić go do konsoli przeglądarki. Wymagany framework jQuery
źródło