2013-04-25 72 views
0

好的。這個標題聽起來像對我來說很滿意,所以讓我把它分解一下。模式對話框:始終使用MSCRMs返回值openstddlg()方法

我正在使用crm-global.js openStdDlg方法打開模式對話框。

openStdDlg("myPage.aspx?" + qs.toString(), null, screen.height, screen.width, true, false, "maximize:yes;minimize:yes"); 

這樣做的目的是在可以最大化的新窗口中打開myPage。 myPage顯示在MS CRM中的iFrame中,並且可能很難在較小的屏幕上使用。

我有3個不同的情況下使用這個iFrame。在其中的兩個實例中,我可以簡單地在myPage中包含一個保存按鈕,當myPage關閉時,我只需刷新原始myPage即可查看新保存的內容。最後一個問題頁面無法從myPage執行保存,因爲需要將更多信息包含在作爲父頁面一部分的保存中。

我需要什麼:

  1. 我需要能夠從該對話框中返回一個字符串返回到父頁面不管對話是如何關閉。
  2. 該字符串可能長達100k字符。

我在左場休息嗎?有沒有更好的辦法?我可以傳回一個很大的字符串嗎?想法,意見,粗魯的言論?

回答

0

在呼叫應該使用的引擎蓋下window.openDialog,據我所知,返回值沒有任何限制。但是,假設您正在使用CRM 2011,並且在某些時候您可能想要轉移到UR 12(如果您還沒有),那麼您應該知道所有瀏覽器都不支持window.openDialog

此外,不是隻通過查詢字符串將值傳遞給對話框,而是實際上有一個額外的參數,您可以將參數數組傳遞給。我相信你在null傳遞的第二個參數是額外的參數。隨着window.openDialog調用可選參數數組中最後通過這樣的:

openDialog("http://example.tld/zzz.xul", "dlg", "", "pizza", 6.98); 

然後可以這樣訪問:

var food = window.arguments[0]; 
var price = window.arguments[1]; 

就像我提到的,我不相信有一個限制,但這是另一種方式,您可以獲得更多信息到您的對話框。

相關問題