2011-04-03 8 views
1

J'ai créé un petit script d'utilisateur pour Google Chrome. Cela fonctionne assez bien, jusqu'à ce que j'appelle une fonction initTimer() Il n'y a pas une telle fonction dans mon script, mais c'est dans un script dans la page sur laquelle mon script d'utilisateur s'exécute, mais de toute façon il y a une erreur. J'ai essayé d'écrire window.initTimer(), mais il est écrit Object [object DOMWindow] has no method 'initTimer'. Alors, comment puis-je le faire fonctionner?
Merci à l'avanceLe script d'utilisateur Google Chrome ne fonctionne pas correctement

Répondre

2

Parce que userscripts sont généralement sandbox du reste de l'environnement du navigateur, userscripts ne peuvent pas interagir avec les scripts en cours d'exécution sur la page elle-même, ne peuvent exécuter des scripts sur la page d'interagir avec userscripts, pour des raisons de sécurité.

Vous devrez effectuer une injection de script pour cela, en créant un élément script dans la page elle-même contenant le code que vous voulez exécuter.

var s = document.createElement('script'); 
s.innerHTML = 'initTimer();'; 
document.body.appendChild(s); 

Le problème avec ce qui peut ou ne peut pas briser votre script, est que le code injecté aura aucun moyen de communiquer directement avec le code dans le bac à sable, donc vous devriez avoir soit injecter tous de votre code, ou utilisez une méthode alternative pour communiquer si nécessaire.

+0

Merci beaucoup! J'ai injecté tout le script sur la page web et maintenant ça marche! Merci encore! – Cracker

Questions connexes