2010-11-05 3 views
1

Pour une application iframe Facebook, nous chargeons un applet Java de navigateur de fichiers. Cela fonctionne très bien dans tous les principaux navigateurs sur PC, et Firefox sur le Mac. Il se charge également bien en dehors d'une iframe dans Safari sur Mac.Java Applet dans iframe ne parvient pas à charger dans Mac Safari

Cependant, dès que la page est appelée depuis un iframe dans Safari/Mac, l'applet ne se charge pas. Nous obtenons le pop-up d'autorisation d'applet signé, mais après que le chargement tourne juste jusqu'à ce qu'il expire.

J'ai testé cela dans un iframe en dehors de Facebook, ainsi qu'à l'intérieur, donc je sais que ce n'est pas un problème de Facebook. S'assurer également que Java est activé et à jour dans Safari, et n'a observé aucun message d'erreur pertinent dans la console.

Est-ce que quelqu'un d'autre a rencontré ce problème, et si oui, existe-t-il une solution ou une solution de contournement qui peut être implémentée?

MISE À JOUR: Sortie de la console Java ci-dessous. Se bloque toujours au même endroit sur l'appel liveconnect, aucune erreur n'est levée.

Java Plug-in 1.6.0_22 
Using JRE version 1.6.0_22-b04-307-10M3261 Java HotSpot(TM) Client VM 
User home directory = /Users/user 
Java Plug-in 1.6.0_22 
Using JRE version 1.6.0_22-b04-307-10M3261 Java HotSpot(TM) Client VM 
User home directory = /Users/user 
network: Loading user-defined proxy configuration… 
network: Done. 
network: Loading proxy configuration from Netscape Navigator… 
network: Done. 
network: Loading direct proxy configuration… 
network: Done. 
network: Proxy Configuration: No proxy 
basic: Referencing classloader: [email protected], refcount=1 
basic: Added progress listener: [email protected] 
basic: Loading applet… 
basic: Initializing applet… 
basic: Starting applet… 
basic: completed perf rollup 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
network: Connecting http://[server_address_removed]/testutility10_21_2009_10_27_45.jar with proxy=DIRECT 
network: Connecting socket://[server_address_removed]:80 with proxy=DIRECT 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
network: Connecting http://[server_address_removed]/testutility10_21_2009_10_27_45.jar with proxy=DIRECT 
network: Downloading resource: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar 
Content-Length: 3,686 
Content-Encoding: null 
security: Blacklist revocation check is enabled 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
network: Connecting http://[server_address_removed]/testutility10_21_2009_10_27_45.jar with proxy=DIRECT 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/testutility10_21_2009_10_27_45.jar, version: null] 
BaseApplet:init-complete 
applet:start 
invoking startup callback testAppletInitialized 
liveconnect: JSObject::call: name=open 
basic: Referencing classloader: [email protected], refcount=1 
basic: Added progress listener: [email protected] 
basic: Loading applet… 
basic: Initializing applet… 
basic: Starting applet… 
basic: completed perf rollup 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
network: Connecting http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar with proxy=DIRECT 
network: Connecting socket://[server_address_removed]:80 with proxy=DIRECT 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
network: Connecting http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar with proxy=DIRECT 
network: Downloading resource: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar 
Content-Length: 33,019 
Content-Encoding: null 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
security: Loading Root CA certificates from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts 
security: Loaded Root CA certificates from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts 
security: Loading certificates from Deployment session certificate store 
security: Loaded certificates from Deployment session certificate store 
security: Loading Root CA certificates from from keychain 
security: Loaded Root CA certificates from from keychain 
security: Validate the certificate chain using CertPath API 
security: Obtain certificate collection in Root CA certificate store 
security: Obtain certificate collection in Root CA certificate store 
security: Obtain certificate collection in Root CA certificate store 
security: jpicertstore.cert.getkeystore 
security: No timestamping info available 
security: Cannot find jurisdiction list file 
security: The CRL support is disabled 
security: The OCSP support is disabled 
security: This OCSP End Entity validation is disabled 
security: Checking if certificate is in Deployment denied certificate store 
security: Checking if certificate is in Deployment permanent certificate store 
security: Checking if certificate is in Deployment session certificate store 
security: Creating MacOSXTrust 
security: Evaluating MacOSXTrust 
security: MacOSXTrust: cert chain is valid, no explict intent 
security: MacOSXTrust: cert chain is valid, keychain explicity requested user confirmation 
security: Evaluating trust of site: [server_address_removed] 
security: Did not find a trusted site record for: http://[server_address_removed]<ab7662bf> 
security: Showing MacOSXTrustSiteDialog 
security: User permitted app to continue with priviledges 
security: MacOSXTrustUI.evaluateTrustAfterShow: returning GrantThisSession 
security: User has granted the privileges to the code for this session only 
security: Adding certificate in Deployment session certificate store 
security: Added certificate in Deployment session certificate store 
security: Saving certificates in Deployment session certificate store 
security: Saved certificates in Deployment session certificate store 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
network: Connecting http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar with proxy=DIRECT 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
network: Cache entry not found [url: http://[server_address_removed]/fileutility10_21_2009_10_27_45.jar, version: null] 
calling workaround: javascript:testAppletInitialized("1.6.0_22");BaseApplet:init-complete 
SingleFileServer23196574: server at http://127.0.0.1:3145 
SingleFileServer23196574: server running 
XMLSocketServer18107298:server at xmlsocket://127.0.0.1:7711 
XMLSocketServer18107298:policy <cross-domain-policy><allow-access-from domain='[server_address_removed]' secure='false' to-ports='7711' /></cross-domain-policy> 
applet:init-complete 
XMLSocketServer18107298:running 
applet:start 
SingleFileServer23196574: now serving certificate e848b62e2782e2cef20fe2d075d9e633 at http://127.0.0.1:3145/certificate1290016856751 
invoking startup callback 
calling workaround: javascript:appletInitialized("http://127.0.0.1:3145","xmlsocket://127.0.0.1:7711","http://127.0.0.1:3145/certificate1290016856751");running on Mac OS X 
applet:start-complete 
liveconnect: JSObject::call: name=open 

Répondre

1

MISE À JOUR: la solution ne fonctionne pas toujours ci-dessous; dans des environnements égaux (version de Safari, version d'OS, tous les arrangements identiques), ceci a seulement fonctionné sur 1 des 4 Macs que j'ai examinés dessus. Toujours à la recherche d'une solution cohérente.

Nous avons pu résoudre ce problème en modifiant les Préférences Java sous Mac OS:

  1. Ouvrez les Préférences Java (Applications> Utilitaires> Préférences Java)
  2. Dans l'onglet Général, modifiez la valeur par défaut « Au sein le processus du navigateur "à" Dans leur propre processus "
  3. Assurez-vous de vider le cache lors du redémarrage de Safari.

Version Mac: 10,6,5; Version Safari: 5.0.2; version Java: 1.6.0_22-604-307

Screenshot of Mac OS Java Preferences dialog

1

Je ne sais toujours pas la cause, mais je l'ai trouvé une solution qui fonctionne pour nous. Ce que j'ai accidentellement découvert, c'est que si vous rechargez le cadre de l'applet, il chargera l'applet la deuxième fois. Un hic était que si vous le faisiez trop vite cela ne fonctionnerait pas alors j'ai ajouté setTimeout avec un retard d'une seconde. Cela semble fonctionner pour nous.

if ((navigator.platform.toUpperCase().indexOf("MAC") != -1) && (navigator.vendor.toUpperCase().indexOf("APPLE") != -1)) { 
setTimeout("ReloadImageFrame('028-2007-009844', '', " + currentAppID + ")", 1000); } 
Questions connexes