Άνοιγμα μιας διεύθυνσης URL σε νέα καρτέλα (και όχι σε νέο παράθυρο) μέσω JavaScript

Προσπαθώ να ανοίξω μια URL σε μια νέα καρτέλα, σε αντίθεση με ένα αναδυόμενο παράθυρο.

Έχω δει συναφείς ερωτήσεις όπου οι απαντήσεις θα έμοιαζαν κάπως έτσι: I've seen related questions where the responses would look something like:

window.open(url,'_blank');
window.open(url);

Αλλά καμία από αυτές δεν λειτούργησε για μένα, το πρόγραμμα περιήγησης εξακολουθεί να προσπαθεί να ανοίξει ένα αναδυόμενο παράθυρο.

Λύση

Ο συγγραφέας δεν μπορεί να κάνει τίποτα για να επιλέξει να ανοίξει σε νέα καρτέλα αντί για νέο παράθυρο- πρόκειται για προτίμηση του χρήστη.

Η CSS3 πρότεινε το target-new, αλλά η προδιαγραφή εγκαταλείφθηκε.

Το αντίστροφο δεν ισχύει- καθορίζοντας διαστάσεις για το παράθυρο στο τρίτο όρισμα της window.open(), μπορείτε να ενεργοποιήσετε ένα νέο παράθυρο όταν η προτίμηση είναι για καρτέλες.

Σχόλια (31)

Για να αναπτύξω την απάντηση του Steven Spielberg, το έκανα αυτό σε μια τέτοια περίπτωση:

$('a').click(function() {
  $(this).attr('target', '_blank');
});

Με αυτόν τον τρόπο, λίγο πριν ο browser ακολουθήσει τον σύνδεσμο ορίζω το χαρακτηριστικό target, ώστε να κάνει τον σύνδεσμο να ανοίξει σε νέα καρτέλα ή παράθυρο (εξαρτάται από τις ρυθμίσεις του χρήστη).

Σχόλια (1)

Νομίζω ότι δεν μπορείτε να το ελέγξετε αυτό. Εάν ο χρήστης είχε ρυθμίσει το πρόγραμμα περιήγησής του να ανοίγει τους συνδέσμους σε νέο παράθυρο, δεν μπορείτε να το αναγκάσετε να ανοίγει τους συνδέσμους σε νέα καρτέλα.

https://stackoverflow.com/questions/726761/javascript-open-in-a-new-window-not-tab

Σχόλια (0)