2009-10-15 8 views
4

J'ai le contrôle partiel d'une page web où je peux entrer des extraits de code à divers endroits, mais je ne peux pas supprimer le code préexistant.Programatically remove <script src = "/ unwanted.js" .. /> référence

Il est à mi-chemin de référence de script dans la page

<script src="/unwanted.js" type="text/javascript"></script> 

, mais je ne veux pas le script à charger. Je n'arrive pas à accéder au fichier unwanted.js. Y at-il de toute façon je peux utiliser javascript s'exécutant au-dessus de cette refernce pour provoquer le chargement du fichier unwanted.js?

Modifier: Pour répondre aux commentaires demandant quoi et pourquoi:

J'installe un site Stack Exchange et les charges de fichiers de l'ADM * au milieu de la page. SE vous permettra d'insérer du HTML dans différentes parties de la page - vous pouvez donc avoir votre en-tête et pied de page personnalisé, etc. Je veux remplacer le code WMD standard par ma propre version. Je peux contourner le problème en chargeant simplement javascript après le chargement du script original WMD et en remplaçant les fonctions par les miennes - mais ce serait bien de ne pas avoir besoin d'un chargement aussi important de JS. * WMD = l'éditeur de balisage utilisé ici dans SO, et sur les sites SE.

+3

Le scénario que vous avez décrit - l'accès que vous avez - m'intrigue. –

+0

Peut-être un plugin pour votre navigateur préféré? ... en supposant que vous pouvez gérer le problème du côté client. – jldupont

+0

Il me semble que vous essayez de faire en sorte que GeoCities ne place pas d'annonces sur votre page. La meilleure façon de le faire est de payer pour l'hébergement. : P – BoltBait

Répondre

2

En bref, vous ne pouvez pas. Même s'il y a un hack, cela dépendra fortement de la façon dont les navigateurs analyseront le HTML et chargeront les scripts, et ne seront donc pas compatibles avec tous les navigateurs.

3

S'il vous plaît dites-nous exactement ce que vous pouvez et ne pouvez pas faire, et (de préférence, cela semble fascinant) pourquoi.

Si vous le pouvez, essayez d'insérer <!-- avant le script et --> ensuite pour le commenter.

Vous pouvez également parcourir le fichier de script et voir s'il existe un moyen de le casser ou d'annuler ses effets. (Cela dépendra entièrement du script lui-même, si vous voulez des conseils plus précis, s'il vous plaît poster plus de détails, ou de préférence, le script lui-même

+0

Malheureusement, il y a un balisage nécessaire entre les deux qui sera également commenté. –

0

Pourriez-vous commencer un commentaire HTML ci-dessus et finir ci-dessous dans un autre bloc

.?

Qu'est-ce que le contenu de unwanted.js ressemblent à

+0

Impossible de faire - voir le commentaire à SLaks réponse. –

+0

Répétez donc le balisage nécessaire dans le bloc que vous contrôlez. –

+0

True. L'identifiant de balisage nécessaire est créé de manière dynamique sur le serveur, donc ce serait assez difficile mais je suppose que je pourrais analyser les parties de la dom et les recréer. –

0

Vous pouvez supprimer un script du DOM après son appel en utilisant quelque chose simple comme:

s = document.getElementById ("my_script"); 
s.parentNode.removeChild(s); 

Cela arrêtera toutes les fonctions de le script mais ne prendra pas je t hors du cache de l'utilisateur. Cependant, comme vous le vouliez, il ne peut pas être utilisé. Fondamentalement, vous ne pouvez pas, sauf si vous avez accès au contenu de la page avant de le rendre.

+0

Cela n'empêchera pas l'exécution du script, ce qui est (probablement) ce qu'il essaie de faire. – SLaks

+0

Correct, mais les fonctions ne sont pas accessibles. Je suppose que c'est peut-être un malentendu sur ce qu'il veut réellement. Le script à charger du tout ou simplement ne pas le laisser fonctionner. La seule chose que je peux penser de tout ce qui a du sens dans tout ce problème est qu'ils obtiennent un txteditor à insérer dans certaines zones et il obtient seulement des zones au-dessus et en dessous où le script est appelé. Votre estimation est aussi bonne que la mienne pour celui-ci. – Dreamcube

0

Si vous pouvez manipuler le code HTML avant de l'envoyer au navigateur, vous pouvez écrire une expression régulière correspondant au code souhaité et l'enlever.

Questions connexes