2011-05-18 5 views
2

Je voulais cacher certaines choses en accédant à l'iframe en utilisant javascript, j'ai donc écrit cette fonction javascript.document.getelementbyid ne fonctionnait pas

function changeCSS(){ 
frame = document.getElementById('frame1'); 
frame.contentWindow.document.getElementById('GlobalTitleAreaImage').style.display='none'; 
} 

J'ai alors appelé la fonction lorsque je charge le iframe (onload = javascript: changecss())

Tout semble fonctionner correctement dans IE, mais dans le travail Safari il does't. Toutes les idées pour lesquelles il se comporte de cette façon et comment je devrais y remédier.

Merci

+2

Pouvez-vous poster quelques balisages? –

+0

sans voir le html c'est difficile de savoir ce qui pourrait se produire – mcgrailm

+2

Est-ce que les deux documents (parent et iframe) appartiennent au même domaine? –

Répondre

1

Notez que les deux le cadre et l'emplacement du Javascript doit être lui-même sur le même domaine pour que cela fonctionne. Safari et IE peuvent gérer différemment si les deux sont du protocole de fichier, aussi.

Pour ceux qui ne sont pas dans le même aspect de domaine dans cross-domain communication with iframes et le potentiel HTML 5 solution, enveloppées bien avec des méthodes par les bibliothèques & de secours plugins tels que porthole, xssinterface, easyxdm, et d'autres.

Bien que Safari soit répertorié en tant que fenêtre de contenu, Chrome ne l'est pas. Pour une compatibilité entre navigateurs, utilisez une combinaison de contentWindow et de contentDocument pour vous assurer que vous utilisez une propriété prise en charge. Essayez donc:

function changeCSS(){ 
    var frame = document.getElementById('frame1'); 
    var content = frame.contentWindow || frame.contentDocument; 
    content.document.getElementById('GlobalTitleAreaImage').style.display='none'; 
} 
+0

Merci pour votre aide – jo88

0

Si l'iframe n'est pas dans le même domaine, vous n'êtes pas autorisé à le faire pour des raisons de sécurité.

+0

Cela fonctionne dans IE si. Y at-il une solution de contournement? – jo88

+0

Avez-vous un lien vers le site en question? – ADW