2014-10-31 36 views
2

這似乎只是Sitecore的一個問題。但是,當我有一個組件(如滑塊)在加載時觸發JavaScript並將其放入組件區域中時,它在客戶端會這樣做。因此,在我按下保存按鈕或重新加載頁面之前,JavaScript不會觸發。這是因爲JavaScript在文檔上運行就緒。Sitecore 7.2在組件區域添加JavaScript時觸發了JavaScript

有沒有人有他們用來解決這個問題的工作解決方案?我正在考慮在頁面處於編輯器模式時觸發加載事件,並在非編輯器模式下正常工作。

+0

這個問題是相當陳舊。 @dnstommy,您是否設法爲您的問題找到解決方案? – chenz 2016-02-25 05:11:20

+0

不,結果只是在滑塊掉落時放置灰度圖像。然後在加載頁面時將其加載爲真實。 – 2016-02-25 16:21:37

回答

1

您需要在PageEditor模式下禁用滑塊的JavaScript。要做到這一點檢查JavaScript屬性Sitecore.PageModes.PageEditor這可以用下面的函數來完成:

function isPageEditor() { 
    if (typeof Sitecore == "undefined") { 
     return false; 
    } 
    if (typeof Sitecore.PageModes == "undefined" || Sitecore.PageModes == null) { 
     return false; 
    } 
    return Sitecore.PageModes.PageEditor != null; 
} 

那麼你的滑塊組件的JavaScript將是這樣的:

$(document).ready(function() { 
    if (isPageEditor() == false) { 
     //slider setup code here 
    } 
} 
+0

我喜歡你的解決方案,但我期望讓我的JavaScript打開。它目前不工作,因爲我的滑塊代碼是通過RequireJS加載的,文檔準備好整個頁面。這意味着當我在編輯模式下將我的滑塊放在頁面上時,函數不會被告知運行。看起來好像當頁面處於頁面編輯器模式並繪製滑塊HTML時,我將不得不爲滑塊組件觸發一個事件,以使滑塊JS運行。即使我把它放在頁面上,這也會迫使它運行。 – 2014-10-31 19:42:05

+0

啊,我看到我現在和你在一起。通常人們想要做相反的事情;-)我通常不會推薦這個;但是如果你的組件中有一些JavaScript - 或者至少是初始化位的調用,那麼它可能會工作。我會盡快更新我的答案...... – 2014-10-31 19:47:25

+0

我們正在研究解決方案。我們使用光滑的旋轉木馬,它繪製所有的滑塊圖像,調整大小,並最終使其成爲一個滑塊。全部通過Javascript。當我放棄對頁面的控制時,它只會繪製HTML框。我需要讓Slick運行它的代碼併爲用戶製作一個滑塊。感謝您的幫助。你的代碼表示讚賞。 – 2014-10-31 19:50:50

相關問題