2012-03-12 97 views
1

因爲我知道你們都喜歡上下文,所以此問題源於無法爲Silverlight找到可以正確處理複雜HTML格式的Rich Text Editor。在完全加載崩潰之前關閉子Silverlight窗口父窗口

決定的解決方案包括打開一個新的IE窗口,以及運行一個Silverlight實例以及一個基於開放源碼的基於RTE的CKEditor。

我們已經理順幾乎涉及通信,裝載的每一個問題,時間等,但一個問題仍然存在:

如果關閉該子窗口之前,它已經完成裝載的Silverlight對象,它會導致父窗口重裝。具體來說,似乎父窗口關閉並重新打開。沒有錯誤被拋出。當插件崩潰時,我看到類似的問題。但是,似乎重新加載任何和所有的Silverlight實例。這個特定問題只會重新加載父項,其他窗口不受影響。

如果您有任何想法可能會發生這種情況,請評論或回覆。我會根據需要發佈代碼。此外,如果您有任何解決方案的想法,這些也會有所幫助。

謝謝!

Greg

+0

花了一年的時間來解決這個問題,我感到你的痛苦。我說:放棄希望所有進入這裏的人。但是你的黑客可能會工作。當你說「Silverlight對象」時,你是指哪一個對象?你如何加載外部IE窗口,以及Silverlight和IE之間的配置是什麼樣的? – 2012-03-12 17:07:12

+0

從父我調用一個JavaScript函數,只是調用window.open()。該窗口然後調用Silverlight.createObject()方法(http://msdn.microsoft.com/en-us/library/cc265155%28v=VS.95%29.aspx)。當Silverlight加載時,它會向javascript發送一個準備好的命令,該命令用作窗口之間通信的接口。 – ginman 2012-03-12 17:54:35

+0

爲什麼你需要創建一個Silverlight對象,而不是直接調用IE頁面?當我遇到這種情況時,我像這樣實現了它:創建一個佔位符控件,顯示純文本版本的HTML。當你點擊它時,它會使用window.open打開帶有正確的HTML編輯器的網頁,在你的情況下,CKEditor。在* that *頁面中,您可以對WYSIWYG進行編輯,將HTML保存到數據庫或任何您想要處理的內容,然後使用一些JavaScript將HTML發回到調用的Silverlight頁面,在那裏您將其轉換爲純文本顯示在佔位符中。 – 2012-03-12 19:55:20

回答

0

我遇到過類似的問題。 我的<a href="http://www.somelink.com">Click here</a>元素打開的頁面需要一段時間才能加載,並且如果子窗口在完全加載之前關閉,那麼我的父項就會崩潰。我將元素更改爲<a href="http://www.somelink.com" onabort="resizeFunction()">Click here</a>,它爲我完成了這項工作。希望能幫助到你。