2010-01-14 30 views
0

我正在使用運行在Firefox中的Lightbox中顯示的iframe上的Java小程序的組合來打擊我的頭部以應對奇怪的問題。Firefox上的奇怪燈箱/ iframe/Java小程序問題

當頁面直接顯示JavaScript調用的小程序

document.appletname.send 

功能完美,從lighbox(實際上lightwindow)則返回錯誤

Error: document.appletname.send is not a function 

這裏面叫然而,當僅在Windows中出現在Firefox中。 IE,Safari和Chrome都很好,因爲是火狐在Ubuntu

有關信息的小應用程序是一個Wirefusion 3D演示,你可以看到通過收藏盒通過,或直接在page containing the lightbox點擊Highland Laddie 3D at the bottom of the page運行小程序。

我試過添加javascript診斷代碼來檢查applet是否存在並且有正確的名稱(它確實)。我能看到的唯一奇怪的事情是,在Firefox中,小程序似乎開始加載兩次。

ADDED:回答一個問題。所謂的收藏夾頁是很簡單的,只是這

<div style="position:absolute; top:0px; left:0px"> 
<iframe id="mainframe" 
src="http://www.tartanweb.com/laddie/highlandladdie.php" width="730px" height="670px" scrolling="no"> 
    <p>Your browser does not support iframes.</p> 
</iframe> 
</div> 
<div style="position:absolute; top:15px; left:600px; z-index:1; width:30px;" > 
<a href="blank-width.html" class="lightwindow_action" rel="deactivate"><input type="button" value="Close"></a> 
</div> 

所以就在iframe本身關閉按鈕。麻煩的javascript代碼是由iframe調用的頁面。我在iframe中添加了javascript代碼來檢查,並且它只報告頁面中的一個applet - 所以applet不能在它嵌入的頁面內被加載兩次。

+1

在那裏,我希望高地Laddie的360°旋轉功能最終能夠提供一些關於*永恆問題*的結論。可悲的是,我很失望。 :) – 2010-01-14 17:03:01

+0

這只是傷心 – Cruachan 2010-01-14 17:15:15

+0

@Cruachan:只是在開玩笑。該網站是偉大的,特別是3d功能。從來沒有見過這樣的事情。我的 – 2010-01-14 17:22:04

回答

0

Lightbox和克隆有時會因爲移動而產生麻煩(或者在最糟糕的情況下,將DOM元素從其上下文中複製到Lightbox容器中。這可能會導致IFRAME被加載兩次。

如果小程序不在IFRAME中,我猜測燈箱會複製該小程序,並且所有後續調用document.appletname都必須失敗。但是,如果Java Applet嵌入到IFRAME中,我看不到會發生這種情況。你是否可能從IFrame外引用Applet?你能顯示引用代碼嗎?

+0

不從外部引用 - 我已將lightwindow調用的完整代碼添加到問題中。 – Cruachan 2010-01-14 17:15:58

+0

嗯。然後我會推測這可能是一個加載問題。在Applet顯示之前,錯誤就會出現。你能否嘗試延遲與'highlandladdie'對象的任何通信,直到文檔完全加載? – 2010-01-14 17:27:28

+0

啊是的。如果我修改啓動器javascript(來自Wirefusion的第三方),將它從直接寫入applet代碼緩存到字符串,然後在加載後將其分配給div innerHTML,然後在Firefox中正常工作。當然,它會在IE中打破它,但可以通過旋轉某些瀏覽器特定的代碼來處理。奇怪的是,applet仍然在firefox中啓動兩次,但它很有效。 – Cruachan 2010-01-14 18:00:19