2014-12-19 118 views
1

我建設使用2010的Sharepoint網站,我已經創建了一個內容編輯器Web部件中的一個時髦的jQuery幻燈片播放(使用視圖的HTML代碼編輯選項)。很好用,除非我想編輯jQuery在編輯屏幕上運行的Web部件並導致各種破壞。如何防止jQuery的運行,而在編輯模式下爲SharePoint Web部件?

我的HTML基本上是這樣的:

<div class="slideshow"> 
    <div class="slide">Slide 1</div> 
    <div class="slide">Slide 2</div> 
</div> 

我的jQuery是這樣的:

$('.slideshow').each(function(){ 
    // Do the magic 
}); 

是否有一個類或ID,我可以在SharePoint 2010 Web部件依靠在編輯我可以利用,以防止jQuery選擇器看到我的幻燈片?事情是這樣的:

$('div:not(.sharepoint-edit-block) .slideshow').each(function(){ 
    // Do the magic 
}); 

回答

4

我沒有用在其他的答案中提到的隱藏輸入的ID,但它們的存在,並會很好的工作。

假設發佈頁面,我總是使用以下內容。

$(document).ready(function(){ 

    // Only run if page is not in Design Mode 
    var inDesignMode = document.forms[MSOWebPartPageFormName].MSOLayout_InDesignMode.value; 

    if (inDesignMode !== "1") 
    { 

     $('.slideshow').each(function(){ 
      // Do the magic 
     }); 
    } 
}); 
1

在wiki頁面上,你可以用_wikiPageMode的ID檢查的元素,如果在編輯模式是在value屬性爲Edit,否則這將是空的(空字符串)。

如果你不是一個wiki頁面上,你可以找一個表單元素與MSOLayout_InDesignMode的ID,如果在編輯模式是在value屬性爲1,否則這將是空的(空字符串) 。 Wiki頁面也有這樣的標籤,但它並沒有將其值設置爲1時,wiki頁面處於編輯mode.Non維基頁面不會有_wikiPageMode標籤,並讓你的選擇將是空的(沒有結果的數組) ,並val()通話將undefined

// technique for wiki pages 
$("#_wikiPageMode").val() // "Edit" or "" 

// technique for non-wiki pages 
$("#MSOLayout_InDesignMode").val() // "1" or "" 
+0

的'$( 「#MSOLayout_InDesignMode」)。VAL()// 「1」 或 「」'在SharePoint辦公室工作對我來說365聽起來很明顯,但檢查的字符串值 「1」,而不是1號。 – redfox05

相關問題