2009-04-14 11 views
0

J'essaye de courir le corps d'un site Web par l'intermédiaire d'une recherche de javascript j'ai créée. Cela fonctionne bien, sauf qu'il n'y a pas d'espace entre les mots; ainsi que le fait html dans ce xcase l'image n'apparaît pas/show. Des solutions?Exécution HTML via Javascript

J'ai donc besoin d'aide pour afficher l'image. Ensuite, obtenir le texte comme vu pour montrer sur le navigateur avec des espaces.

Ceci peut être trouvé dans la variable srctxt. C'est où je pense que le problème est.

S'il vous plaît, notez que je n'ai que des connaissances de base en Javascript.

<body> 
    <script type = "text/javascript"> 
     var keyword; 
     var srctxt; 
     var srctxtarray; 

     keyword = "archery"; 
     srctxt = "hellow blah blah blah archery <img src =\"megan_fox.jpg\">hello test archery"; 

     srctxtarray= srctxt.split(" "); 
     for (var i=0;i<srctxtarray.length;i++){ 
      if(srctxtarray[i] != keyword){ 
       document.write(srctxtarray[i]); 
      } 
      else{ 
       document.write("<b class=\"red\">"); 
       document.write(srctxtarray[i]); 
       document.write("</b>"); 
      } 
     } 
    </script> 
</body> 

Répondre

2

S'il vous plaît modifier votre question, et assurez-vous que vous êtes clair ce que vous demandez. Est-ce que vous essayez d'obtenir l'image à montrer? Y a-t-il un problème pour obtenir le texte du DOM? Comment obtenez-vous le texte du DOM?

Votre plus gros problème, je peux le voir dès le départ, c'est que vous utilisez document.write. Vous devez utiliser innerHtml pour définir le texte et les éléments DOM.

+0

Oui, je suis en train d'obtenir Teh image pour montrer. Aussi, il n'y a pas de problème pour obtenir le texte. Tout le corps html sera écrit dans la variable srctxt. –

+0

Vous devez utiliser la propriété innerHTML de tous les objets DOM que vous ajoutez pour obtenir l'img à afficher. –

+0

@Jin: à partir de cette réponse, vous pouvez stocker le texte dans une variable de texte, puis définir body.innerHTML dans le texte à la toute fin. De cette façon, le navigateur rendra les tags. Sur une note de côté, vous devez toujours remettre les espaces dans la page, car la scission les efface. – regex

1

Vous n'émettez pas d'espace. Vous supprimez les espaces lorsque vous srctxt.split et ne faites jamais rien pour les remettre.

+0

Merci, cela a aidé car je n'ai pas remarqué cela. Des idées sur comment je peux rentrer dans les espaces? –

+0

document.write ("") après votre if ... else? – rvarcher

0

Vous divisez la chaîne autour de "" (espaces) mais vous n'écrivez pas les espaces en arrière.

Après document.write (srctxtarray [i]) vous devez ajouter

document.write(" "); 
0

Le problème est que vous supprimez des espaces (en utilisant Split) et vous ne les mettez pas en arrière quand vous écrivez la mots. L'image n'est pas affichée car l'espace entre img et src est supprimé et l'étiquette ressemble à <imgsrc.

Pour mettre des espaces, utilisez:

document.write(srctxtarray[i] + " "); // will add spaces 

Mais je vous recommande fortement d'utiliser ce que Nick Berardi a suggéré

+0

Merci pour la suggestion mais il ajoute seulement les espaces, après le mot tir à l'arc plutôt que tous les mots. –

+0

utilise cette ligne dans les deux conditions (les parties "if" et "else"), et pas seulement dans la partie "if". – Aziz