file: /// http: // communication via IFrame
Question
Peut-être que certains d'entre vous aurait pu rencontré le même problème que je l'ai fait. Imaginez que vous avez un fichier sur votre machine: file: /// c: \ test.html
Et vous avez un IFrame à l'intérieur de ce fichier. Vous devez indiquer si le contenu iFrame sont chargés ou non.
bacically, ce que nous avons ici: 1. Emplacement, href, ou toute autre propriété est inaccessible de file: /// http: /// , ou en arrière. 2. vous ne pouvez pas appliquer l'événement de la fenêtre du navigateur en iframe, ou en sens inverse, malheureusement.
Est-ce que ce problème a une solution? P.S .: ce n'est pas un hack. c'est un vrai problème. faisant une interaction de la machine locale avec l'intégration d'un site Web.
UPD: Je figure un peu pourquoi il est interdit. Toute interaction avec les fichiers locaux devrait être interdit à partir de la page Web. Il est un peu cool, je suis d'accord. Mais n'est pas une chose # hashtag qui ne peut nuire à personne? : (
La solution
Vous pouvez trouver certaines de ces techniques utiles: http://softwareas.com/ cross-domain-communication-avec-iframes
Modifier . Par commentaires ci-dessous, ces techniques ne semblent pas fonctionner lors de l'accès file:///c:\<path>\test.html
, alors qu'ils le font lors de l'accès http://localhost/test.html
Je pense que ce parce que le protocole file
est encore plus limité par le navigateur que le protocole http
. la page MSDN sur les états du protocole de fichier :
Internet Explorer 6 Service Pack 1 (SP1) ne permet plus une navigation machine locale de la zone Internet. Par exemple, si un site Internet contient un lien vers un fichier local, Internet Explorer 6 Service Pack 1 affiche une page blanche lorsqu'un utilisateur clique sur le lien. Les versions précédentes de Windows Internet Explorer a suivi le lien vers le fichier local.
Quelle que soit la technique que vous utilisez pour obtenir une communication inter-domaines a été probablement bloqué par le navigateur parce que vous utilisez le protocole file
.