2010-04-10 6 views
4

J'ai deux onglets de navigateur, tab1 et tab2.Appelez une fonction JavaScript sur les onglets du navigateur

J'ai une fonction appelée execute dans tab1, que je voudrais appeler à partir de la page dans tab2.

Est-ce possible et si oui, comment?

+0

Vous pouvez le faire maintenant avec l'événement de stockage localStorage ou avec la bibliothèque qui utilise cet événement. – jcubic

Répondre

16

JavaScript ne peut pas faire les scripts inter-onglet dans le navigateur (il est un risque de sécurité).

Si toutefois le 2ème onglet a été ouvert à partir d'un appel window.open(), et les navigateurs les paramètres ont été mis en place tels que les nouvelles fenêtres pop-up ouvert dans un nouvel onglet à la place - puis oui, « tab1 » peut parler « tab2 »

le premier onglet/fenêtre est appelée opener et donc le nouvel onglet peut appeler des fonctions sur l'ouvreur utilisant ce format:

opener.doSomething(); 

De même, l'ouvre-porte peut appeler des fonctions dans le nouvel onglet/popup, en utilisant la variable créée lors de la création de la fenêtre contextuelle.

var myPopup = window.open(url, name, features); 
myPopup.doStuffOnPopup(); 
0

Vous devez montrer votre code html en premier lieu, mais je suppose que votre onglet a un lien, vous pouvez faire comme ceci:

<a href="some-path" id="tab2">Tab 2</a> 

JQuery:

$('#tab2').click(function(){ 
    // your function code here 

    // prevent default action 
    return false; 
}) 
+0

Je pense qu'il voulait dire les vrais onglets, pas les pseudos tabs –

0

Je ne peux pas Comprendre ce que vous entendez par la question.

Mais vous pouvez transmettre des références de fonction javascript en tant qu'arguments à d'autres fonctions (attention aux contextes d'exécution d'objets).

Ainsi, lors de l'initialisation de "tab2", vous pouvez envoyer la référence de fonction et exécuter de "tab1", à "tab2".

Aurait pu donner une réponse plus définitive avec un exemple, si vous aviez été plus clair dans votre question.

+0

ma quetiosn de base est de savoir comment appeler une éducation dans une autre fenêtre ou un autre onglet? – kumar

+1

Je ne suis pas au courant d'un moyen de le faire! L'objet fenêtre javascript n'est-il pas l'objet parent que nous avons à notre disposition? Comment pouvez-vous accéder au code dans une autre fenêtre?! (Violation du principe même du fonctionnement d'un navigateur, dans ma compréhension) Pouvez-vous expliquer votre besoin un peu plus, je pourrais être en mesure de suggérer une solution de contournement. –

Questions connexes