【问题标题】:Java Applet in iframe fails to load in Mac Safariiframe 中的 Java Applet 无法在 Mac Safari 中加载
【发布时间】:2011-05-05 17:20:29
【问题描述】:

对于 Facebook iframe 应用程序,我们加载文件浏览器 Java 小程序。这适用于 PC 上的所有主要浏览器和 Mac 上的 Firefox。它还可以在 Mac 上的 Safari 中的 iframe 之外正常加载。

但是,一旦在 Safari/Mac 的 iframe 中调用页面,小程序将不会加载。我们确实得到了签名的小程序权限弹出窗口,但之后加载只是旋转直到超时。

我已经在 Facebook 外部和内部的 iframe 中对此进行了测试,因此我知道这不是 Facebook 问题。还确保在 Safari 中启用 Java 并且是最新的,并且在控制台中没有观察到相关的错误消息。

有没有其他人遇到过这个问题,如果有,是否有可以实施的解决方案或变通方法?

更新:来自下方 Java 控制台的输出。在 liveconnect 调用中总是挂在同一个地方,没有抛出错误。

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: sun.plugin.ClassLoaderInfo@da90c, refcount=1
basic: Added progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@1797795
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: sun.plugin.ClassLoaderInfo@602b6b, refcount=1
basic: Added progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@18a6e6e
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

【问题讨论】:

    标签: java macos iframe safari applet


    【解决方案1】:

    更新:以下解决方案无法始终如一地工作;在相同的环境(Safari 版本、操作系统版本、所有设置相同)中,这只适用于我测试过的 4 台 Mac 中的 1 台。仍在寻找一致的解决方案。

    我们能够通过修改 Mac OS 中的 Java 首选项来解决此问题:

    1. 打开 Java 首选项(应用程序 > 实用程序 > Java 首选项)
    2. 在“常规”选项卡上,将默认的“在浏览器进程中”更改为“在他们自己的进程中”
    3. 确保在重新启动 Safari 时清空缓存。

    Mac 版本:10.6.5; Safari 版本:5.0.2; Java版本:1.6.0_22-604-307

    【讨论】:

      【解决方案2】:

      我仍然不知道原因,但我找到了适合我们的解决方法。我偶然发现的是,如果您重新加载小程序框架,它将第二次加载小程序。一个问题是,如果你做得太快,它将无法工作,所以我将 setTimeout 添加到它,延迟一秒。这似乎对我们有用。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-31
        • 1970-01-01
        • 1970-01-01
        • 2012-06-20
        • 1970-01-01
        • 2014-05-25
        • 1970-01-01
        相关资源
        最近更新 更多