2009-11-23 5 views
7

C'est la même question que THIS ONE, je ne peux plus répondre à cela, donc je le re-poster avec mon compte.
Désolé pour le bordel.Appel href à partir de JavaScript

J'ai besoin d'un script Greasemonkey qui lors d'un chargement de page active un lien href comme 'javascript: FUNCTION'. Je l'ai vu ce code:

<script language="Javascript" type="text/javascript"> 
    function somescript() { 
      window.location.href = document.getElementById('ololo').href; 
    } 
</script> 

<a href="javascript:alert('test');" id="ololo">test</a> 
<br /> 

<a href="javascript:somescript()">click me</a> 

et, alors qu'il travaille sur une page locale même lors de l'utilisation onload, il ne fonctionne pas quand je l'utilise dans mon script.

Il me manque probablement quelque chose lors du transfert du code du corps d'une page html vers un script Greasemonkey.

J'espère que cette fois la question est plus claire, excusez-moi pour tout malentendu, mais je suis toujours un débutant avec JS.

+1

Publiez votre script greasemonky – Yacoby

+1

Le script c'est encore WIP, mais la fonction dont j'ai besoin c'est le premier qui devrait fonctionner, sinon rien d'autre ne le fera. Pour le garder plus clair: le reste du script n'est pas en conflit avec cette fonction. – Gurzo

+0

Alors, avez-vous des erreurs? – Yacoby

Répondre

17

a résolu le problème comme celui-ci:

window.location=document.getElementById('foo').href; 

Merci à tous pour avoir répondu quand même.

+0

Génial !! Merci. –

0

Est-ce que cela fonctionnera pour votre scénario?

<script type="text/javascript"> 
    function somescript() { 
    document.getElementById('ololo').click();//fake a click on the link 
    } 
</script> 
+2

Cela ne fonctionnera pas dans Firefox. – SLaks

+0

Cela ne fonctionne pas. Est-il possible qu'un site web interdise ce genre d'actions? – Gurzo

+0

Ah, joliment noté ... cela fonctionnait (et fonctionne encore dans IE) – scunliffe

4
<script type="text/javascript"> 
    function somescript() { 
     eval(document.getElementById('ololo').getAttribute('href').replace('javascript:', '')); 
    } 
</script> 

Je peux voir la zone d'alerte ..

S'il vous plaît noter que cela ne fonctionnera que lorsque son code javascript dans l'attribut href ...

+0

Si vous voulez faire un faux clic sur le lien à la place, il y a un exemple ici ... il semble que beaucoup de travail sans une bibliothèque tierce partie: http://groups.google.com/group/comp.lang.javascript/browse_thread/thread/27e7c70e51ff8a99/98cea9cdf065a524% 2398cea9cdf065a524? pli = 1 –

Questions connexes