2010-07-12 5 views
0

Existe-t-il une méthode JavaScript ou Objective-C pour convertir un location.href="MyURL" en ?Convertir l'URL location.href en lien ancre

J'ai plus de 200 URL location.href ne fonctionne pas avec UIWebViewNavigationTypeLinkClicked: -S

Merci à tout le monde peut me aider!

+0

Je pense que vous devriez clarifier votre question: Avez-vous un texte HTML avec des liens représentés comme location.href texte et vous voulez la traduction de texte de base en tags? S'il vous plaît décrire le problème dans plus de détails afin que nous puissions vous aider – Nick

+0

Je veux que mon Javascript (événement) {location.href = http: // ...} peut être lu par le navigateur comme un lien d'ancrage. Est-ce possible? – Obliviux

+0

Voyons voir: donc vous avez cet événement qui charge essentiellement cette URL, non? Et vous voulez, au lieu de charger la page, afficher le lien vers cette page? Dans ce cas, vous pouvez réécrire votre fonction en tant que ... {document.write (""); } ... qui devrait afficher le lien – Nick

Répondre

0
<a href="http://www.myurl.com" id="myAnchor"></a> 

    <script type="text/javascript"> 
     document.getElementById("myAnchor").setAttribute("href", window.location.href); 
     var loc = document.getElementById("myAnchor").getAttribute("href"); 
     var t = document.createTextNode(loc); 
     document.getElementById("myAnchor").appendChild(t); 
    </script> 

Voici une façon de le faire: document.getElementById() saisit une référence à l'attribut ID de votre point d'ancrage (s). Le deuxième argument de setAttribute(), "window.location.href" saisit une référence à l'URL dans la fenêtre courante et définit l'attribut href attibute dans votre ancre, mais si vous avez un groupe de position.href() s déclaré dans votre code, stockez-les comme une variable avant la première ligne et ensuite référencez cette variable autour de la même ligne que celle où j'ai déclaré "loc". La variable "loc" déclare une variable qui stocke une référence à l'attribut href nouvellement créé que vous venez de déclarer dans la ligne précédente. Ensuite, je déclare une variable "t" qui crée un noeud de texte dans le DOM, avec le href de la ligne précédente comme valeur que cette variable va contenir. Enfin, j'utilise document.getElementById pour obtenir à nouveau "myAnchor" et y ajouter le noeud de texte de la ligne précédente. Alors maintenant, nous pouvons réellement voir l'URL dans le lien.

 //Also, use a for loop to run this action 200 times and correct all of the hrefs  on your page. 
     <script type="text/javascript"> 
      for (var i=0;i<200;i++){ 
       //run document.getElementById() and .setAttribute, .createTextNode, etc. here 
      } 
     </script> 

violon travail: http://jsfiddle.net/1so33q4z/36/

Je recommande de ne pas utiliser document.write(); comme mentionné dans la publication de l'autre personne, car cela provoque le fonctionnement de la page d'une manière que le DOM n'est pas destiné à (écrit le texte sérialisé). Surtout si vous avez besoin de corriger 200 d'entre eux. Voir cet article Why is document.write considered a "bad practice"?