J'ai développé une application qui a une liste d'éléments dans une image; quand on clique sur un élément, il fait quelque chose dans un autre cadre (charge une image).Comment appeler une fonction JavaScript d'une image à une autre dans Chrome/Webkit avec le protocole de fichier
Cela fonctionnait normalement dans tous les navigateurs, y compris Chrome 3; maintenant il fonctionne toujours très bien dans Firefox, mais dans les versions récentes de Chrome (je crois depuis le 4), il jette cette erreur:
« caractéristique »Unsafe JavaScript attempt to access frame with URL (...) from frame with URL (...). Domains, protocols and ports must match.
Ceci est évidemment une sécurité, mais est-il possible de la contourner?
Voici un test simple:
index.html:
<html>
<frameset cols="50%,50%">
<frame src="left.html" name="left"/>
<frame src="right.html" name="right"/>
</frameset>
</html>
left.html:
<html>
<body>
<a href="javascript:parent.right.test('hello');">click me</a>
</body>
</html>
right.html:
<html>
<body>
<script>
function test(msg) {
alert(msg);
}
</script>
</body>
</html>
Les travaux ci-dessus dans Firefox 3.6 et Chrome 3 mais Chrome 5, il jette l'erreur ci-dessus ...
Modifier:
- a ajouté l'@cols attribut à l'élément frameset
- en fait, il fonctionne dans Chrome si et seulement si les pages sont servi avec le protocole http (et du même domaine) mais mon problème est lorsque les pages sont locales et servies à partir d'un fichier: // protocole. Ensuite, il fonctionne dans Firefox (toutes les versions) et Chrome 3 mais pas Chrome 5 (je n'ai pas Chrome 4 donc je ne suis pas sûr de cette version spécifique (et je ne sais pas s'il est même possible de télécharger une version spécifique de Chrome) ?) - mais pour Chrome 5 je suis très sûr que ça ne marche pas).
Cela devrait fonctionner correctement si toutes les pages se trouvent sur le même domaine. Êtes-vous sûr à 100% que c'est le même domaine (pas même 'www.domainname' versus' domainname')? Le même protocole (http/https)? –
En fait, le problème est spécifique au protocole de fichier; Lorsque les fichiers sont diffusés via http et le même domaine, il n'y a aucun problème dans Chrome. mais sur le fichier: // Chrome 5 renvoie l'erreur comme mentionné. Le but de cette application est de ne nécessiter aucune installation de la part de l'utilisateur qui devrait pouvoir parcourir les fichiers directement sur un CD-Rom (ne demandez pas! ;-) donc si le protocole de fichier est cassé c'est un problème ... Toute aide serait grandement appréciée! – Bambax