6
votes

Comment changer l'URL du cadre "Parent"?

J'ai un site web que je me regarde moi-même. Je n'ai pas d'adresse IP statique, je n'ai donc pas tout le trafic de mon domaine avec le masquage à mon compte DDNS. La page résultante ressemble à ceci ... xxx

Comment puis-je mettre à jour l'URL de la trame "parent" lorsque les utilisateurs naviguer dans le cadre "enfant"?

< Strong> Mise à jour: Succès?

J'ai essayé de le faire avec JavaScript mais j'ai eu un problème à obtenir le bon href à ma fonction javascript avec des effets secondaires indésirables ( Avoir deux fenêtres ouvertes, avoir ma fenêtre principale allant au mauvais endroit ou le rendant ainsi que le bouton arrière ne fonctionne pas correctement). Tout ce dont j'avais besoin était un attribut de ma balise pour tenir une valeur que je pourrais utiliser dans mon JavaScript, mais ne feriez rien d'autre du tout. Ajout de la valeur attribuée Evénement Bien que ce ne soit pas un attribut natif à la balise A fonctionne bien.

La balise A ... xxx

et la fonction JavaScript ... xxx

L'URL mise à jour résultante est ... xxx

... et il n'y en a aucun des effets secondaires mentionnés précédemment.

le seul "effet secondaire" que je voudrais réparer est Affichage du lien dans la barre d'informations en bas d'une fenêtre de navigateur. Il est indiqué JavaScript: void (0); parce que c'est ce qui est écrit dans mon href attribut, mais j'aimerais qu'il affiche l'URL mise à jour lorsque le lien est planifié sur ... toutes les pensées?

Ce serait encore mieux si je pouvais repasser tout ce javascript et utiliser IIS 7 URL REWRITE 2.0 Pour ce faire cela à la place ... mais je n'ai pas encore maîtrisé l'art noir de la réécriture d'URL.


1 commentaires

Probablement un simple window.open ("the-nouvellement url-aller-ici", "_top") . Si vous utilisez des liens, alors ouvrir moi .


3 Réponses :


11
votes

JavaScript:

<a onclick="url_update(this);return false;" value="test/test.html" href="test/test.html">test link</a>


2 commentaires

Votre réponse semble que cela pourrait fonctionner, mais j'ai besoin de le faire pour chaque lien sur mon site. Si j'ai quelque chose comme lien de test , alors comment passer le /test/test.html sur une seule fonction JavaScript qui sera mettre à jour chaque lien qui appelle cette fonction?


Impressionnant, je ne savais pas que vous pourriez simplement ajouter des attributs qui n'étaient pas originaires de la balise! Maintenant, je peux utiliser la valeur au lieu d'avoir une mauvaise utilisation des attributs rel et / ou REV . Savez-vous également comment je peux faire l'affichage de l'URL mis à jour correctement dans la barre d'informations située au bas de la fenêtre du navigateur lorsque je survole sur le lien? (Voir question mise à jour).



2
votes

Tout d'abord, vous devez être sur le même domaine ... sinon pour des raisons de sécurité, vous ne pouvez pas le changer. Déclarez et appelez cette fonction dans votre cadre enfant

function reloadContent(theUrl){
  if (theUrl != ""){ 
      document.getElementById("frameID").src= theUrl ; 
  } 
}


0 commentaires

5
votes

Il est difficile de dire à votre question exactement quels cadres font quoi, mais si la solution Scrum Meister fonctionne pour vous, que vous pouvez facilement implémenter ce que vous voulez en ajoutant ceci à chacun de vos balises.

<script language="javascript" type="text/javascript">
$(function()
{
     $("A").attr("target","_top");
});
</script>


2 commentaires

Je suis d'accord avec vous, il est difficile de dire ce qui se passe de ma question, mais quand je donne tous les détails, mes questions ne sont pas répondues parce que les gens n'aiment pas lire très longtemps :) J'ai essayé d'utiliser la cible Tag comme vous avez dit mais ne pouviez pas le faire fonctionner avec ma configuration, mais cela m'a donné l'idée d'essayer d'autres attributs uniquement pour le fait de passer une valeur à ma fonction JavaScript. J'ai utilisé rel juste pour contenir la valeur et cela fonctionne bien. Je sais que ce n'est pas ce que l'attribut rel est pour mais cela fonctionne. Voir ma question mise à jour.


cible = "_top" est de loin le moyen le plus simple de le faire! Merci!