Ouvrir la page dans un nouvel onglet à l'aide de javascript fenêtre.ouvert(elementName.elementValue) dans la balise d'ancrage
J'ai examiné des tonnes d'exemples au cours de ces quelques jours, mais ne peut toujours pas trouver de réponse à mon dilemme. Dans l'ordre pour moi de vous expliquer mon dilemme d'abord je vais vous montrer un exemple de quelque chose que j'ai qui fonctionne, puis expliquer comment je préférerais qu'il travail (mais n'arrive pas à atteindre).
Cela fonctionne:
<form>
<select name="url">
<option selected="selected" value=""> Choose Donation Amount </option>
<option value="http://www.url1.com">URL#1</option>
<option value="http://www.url2.com">URL#2</option>
<option value="http://www.url3.com">URL#3</option>
<option value="http://www.url4.com">URL#4</option>
<option value="http://www.url5.com">URL#5</option>
<option value="http://www.url6.com">URL#6</option>
</select>
<input type="submit" value="Submit" onclick="if (url.value) window.open(url.value);" />
</form>
Mais ce que je préfère faire est de capturer l'option et ouvrir l'URL à l'aide d'une balise d'ancrage (plutôt que d'input[type"submit"]), quelque chose comme ceci (pour remplacer la balise d'entrée avant la balise de fermeture du formulaire):
<a href="javascript:void(if (url.value) window.open(url.value));" target="_blank">Submit</a>
La ligne ci-dessus ne fonctionne pas, et je ne peux pas comprendre comment former correctement. De l'aide?
Je sais que cela ne semble pas logique, surtout depuis que j'déjà avoir de travail à l'aide d'un bouton de soumission, mais c'est pas pratique pour moi d'expliquer exactement pourquoi je ne veux pas utiliser l'entrée ou le bouton type="submit", ou PHP. S'il vous plaît, il a vraiment besoin d'être en ligne de javascript dans une balise d'ancrage. Merci.s 🙂
Vous devez vous connecter pour publier un commentaire.
Ajouter votre formulaire
name
attribut comme:... et puis essayer comme ça:
Il y a un travail exemple.
Je ne sais pas pourquoi vous devez utiliser le formulaire si vous voulez juste pour ouvrir une URL tout en sélectionnant une option. Lire le code ci-dessous:
Cela fonctionne bien sur tous les navigateurs, Même sur IE5.
Cela a fonctionné jusqu'à présent, même si c'est long
<a href="javascript:void((function(){ val=document.getElementsByName('url')[0].value; if(val) window.open(val)})())">click</a>
Vous pouvez oublier l'aide de JavaScript car les commandes du navigateur si oui ou non il s'ouvre dans un nouvel onglet. Votre meilleure option est de faire quelque chose comme ce qui suit:
Ce sera toujours ouvrir dans un nouvel onglet, indépendamment du navigateur qui utilise un client en raison de la
target="_blank"
attribut.Si vous avez besoin de rediriger avec aucun des paramètres dynamiques, vous pouvez utiliser un lien avec la
target="_blank"
attribut:Nous avons également eu une demande similaire. Nous voulions générer href url à partir du côté serveur à l'aide d'un appel ajax lorsque l'utilisateur clique dessus. après avoir fait beaucoup de recherche, nous avons trouvé que c'est en fait contrôlé par le navigateur. Dans google chrome, le nouvellement ouvert la page s'ouvre dans une fenêtre contextuelle et il est bloqué par le bloqueur de pop-up. La plupart des utilisateurs de notre application ont été déconcertés par ce comportement. C'est la solution que nous avons utilisées. Espérons que cela va aider quelqu'un qui a le même problème.
On peut avoir un lien régulier qui pointe vers une page web que nous avons dans notre site appelé LandingPage.html. Nous avons à définir la cible à "_blank" pour ouvrir la fenêtre dans le même onglet du navigateur.
Nous nous sommes ensuite attachés à l'événement click du fakeLink d'ancrage de l'élément.
Nous pouvons effectuer l'appel ajax et récupérer le générées dynamiquement l'url du serveur. ensuite, nous pouvons ajouter l'adresse url de localstorage.
De la page de destination peut avoir un texte pour indiquer aux utilisateurs qu'ils seront redirigés dans un second.
"Vous allez être redirigé vers google en 1 seconde."
Dans la page d'atterrissage, nous pouvons avoir un settimeout et à l'intérieur de cette fonction, nous pouvons utiliser une fenêtre.emplacement pour rediriger l'utilisateur vers la page en question.
Espère que cette aide, Cela devrait fonctionner dans tous les navigateurs, j'ai seulement vérifié dans IE 10 et Chrome puisque nous ne sommes pas à l'aide de n'importe quel navigateur liés choses.