因爲我知道你們都喜歡上下文,所以此問題源於無法爲Silverlight找到可以正確處理複雜HTML格式的Rich Text Editor。在完全加載崩潰之前關閉子Silverlight窗口父窗口
決定的解決方案包括打開一個新的IE窗口,以及運行一個Silverlight實例以及一個基於開放源碼的基於RTE的CKEditor。
我們已經理順幾乎涉及通信,裝載的每一個問題,時間等,但一個問題仍然存在:
如果關閉該子窗口之前,它已經完成裝載的Silverlight對象,它會導致父窗口重裝。具體來說,似乎父窗口關閉並重新打開。沒有錯誤被拋出。當插件崩潰時,我看到類似的問題。但是,似乎重新加載任何和所有的Silverlight實例。這個特定問題只會重新加載父項,其他窗口不受影響。
如果您有任何想法可能會發生這種情況,請評論或回覆。我會根據需要發佈代碼。此外,如果您有任何解決方案的想法,這些也會有所幫助。
謝謝!
Greg
花了一年的時間來解決這個問題,我感到你的痛苦。我說:放棄希望所有進入這裏的人。但是你的黑客可能會工作。當你說「Silverlight對象」時,你是指哪一個對象?你如何加載外部IE窗口,以及Silverlight和IE之間的配置是什麼樣的? – 2012-03-12 17:07:12
從父我調用一個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
爲什麼你需要創建一個Silverlight對象,而不是直接調用IE頁面?當我遇到這種情況時,我像這樣實現了它:創建一個佔位符控件,顯示純文本版本的HTML。當你點擊它時,它會使用window.open打開帶有正確的HTML編輯器的網頁,在你的情況下,CKEditor。在* that *頁面中,您可以對WYSIWYG進行編輯,將HTML保存到數據庫或任何您想要處理的內容,然後使用一些JavaScript將HTML發回到調用的Silverlight頁面,在那裏您將其轉換爲純文本顯示在佔位符中。 – 2012-03-12 19:55:20