2010-09-03 4 views
0

J'ai un <script> où il ajoute au <head> un autre script. Ce nouveau script est censé trouver l'original <script> qui l'a inséré. puis-je mettre <script id="blablabla"> et laisser le nouveau <script> le trouver?Comment trouver <script> par l'ID

<div id="placeholder-1"></div> 
<script type="text/javascript"> 
      <//![CDATA[ 
      (function() { 
      var s = document.createElement("script"); 
      s.type = "text/javascript"; 
      s.async = true; 
      s.src = "blablabla.com/blabla.js"; 
      (document.getElementsByTagName("head")[0] || 
       document.getElementsByTagName("body")[0]).appendChild(s); 
      })();//]]></script> 

Maintenant, le blabla.js doit trouver l'espace réservé div. J'essaye de sauver ce div espace réservé, en lui donnant déjà son identifiant pour le script.

est-ce un navigateur compatible?

grâce

+0

Si vous pouviez montrer un code de manipulation de script que vous faites, cela serait utile. –

+0

En fait, je voudrais vous demander pourquoi vous voulez l'ID du script, mais pas l'espace réservé? Quel est le point de référence à l'étiquette de script? – PeterWong

+0

Le script est un code que je veux que les gens intègrent. Je ne veux pas qu'ils mettent trop de code. J'essaie de le faire aussi court que possible – Himberjack

Répondre

5

En HTML 5, placez simplement un attribut id sur la balise script.

 <script id="myscript"> 
     // Your script here 
    </script> 

En HTML 4, l'étiquette d'identification n'est pas définie comme valide sur une étiquette de script.

http://www.w3.org/TR/html4/interact/scripts.html#edef-SCRIPT Spécifications W3C officiel

Seulement Src, type langugage, reportons et charset sont officiellement autorisés.

Un travail valide autour serait ... ce

<div id="scriptcontainer"> 
    <script type="text/javascript"> 
     // Your script here 
    </script> 
</div> 

Vous pouvez maintenant parcourir le script en utilisant l'identifiant de l'élément div dans votre « blabla.js »

var myScript = document.getElementById("scriptcontainer").getElementsByTagName("script")[0]; 

Alors Essentiellement, en imbriquant le script à l'intérieur d'un élément avec un identifiant, nous pouvons accéder au script à partir d'un autre script et avoir un balisage valide.

Note complémentaire: dans le HTML 4 spec, id est vraiment pas autorisée sur la balise de script:

id Tous les éléments, mais BASE, HEAD, HTML, META, SCRIPT, STYLE, TITRE ID #IMPLIED ID unique à l'échelle du document

1

Oui, vous pouvez le faire. id est l'un des attributs globaux et ceux-ci peuvent être spécifiés sur tous les éléments HTML (même ceux qui ne sont pas définis dans la spécification html). La balise script lui-même a permis

Content attributes: 
Global attributes 
src 
async 
defer 
type 
charset 

EDIT

Notez que cette information est tirée de la spécification HTML5. Je ne suis pas sûr des versions précédentes, qui pourraient encore être utilisées dans les tutoriels. En tant que tel, il devrait déjà être compatible avec tous les principaux navigateurs (c.-à-d. Ceux qui prétendent prendre en charge le format HTML5).

+0

alors pourquoi ils écrivent ce n'est pas? http://www.w3schools.com/tags/tag_script.asp – Himberjack

+0

en lisant http://www.w3schools.com/tags/ref_standardattributes.asp, j'ai trouvé que le script et d'autres tags ne supportaient pas 'id',' class', 'style', etc. MAIS j'ai essayé d'ajouter' id' à une balise de script et je peux le localiser en utilisant $ ("# script_id") dans jQuery. – PeterWong

+0

La question est - si son légal et les navigateurs sont compatibles (safari & all) – Himberjack

1

showtime = setInterval("Time()", 1000) à la fin du script js, par exemple, dernière ligne. Avec ceci vous pouvez mettre le script dans la zone d'étiquette de tête, et appeler le script par son identifiant, dans ce cas id=time.
Je l'utilise sur ma minuterie sur la page Web, et en ajoutant quelques zéros au 1000, dis ajouter 15 zéros et bien sûr changer le temps d'identification pour ce que vous voulez, vous pouvez évidemment tromper le navigateur assez longtemps pour s'en tirer , ...

Quelle est la probabilité que certains restent sur la page web pour 10000000000000000000000 millisecondes, lorsque la tique est que vous obtiendrez une erreur, alors ne le mettez pas à court.

Btw la question ci-dessus était la raison pour laquelle je suis venu à cette page, depuis que je cherchais à trouver une meilleure façon puis de tromper le navigateur, mais après avoir lu toutes les réponses, je pense que je vais continuer tout duper!

Pour faire bonne mesure, j'utiliser quelque chose de semblable à cela dans le corps: « <center<FONT SIZE="2" COLOR="#003300"><b><div id=time></div></b></FONTcenter> »

Une semaine a 604800000 millisecondes, je pense que vous fermez votre première page.

http://www.temnolooi.nl/2014a/agenda/agenda.html

Note: Ne prenez note que le fait que les scripts mettre dans les balises head charge le fichier, alors ne l'utilisation excessive, ou vous pouvez obtenir un débordement de pile. Les scripts du corps ne sont exécutés que lorsque le code HTML est utilisé ou que l'utilisateur l'appelle.

Questions connexes