2014-01-20 71 views
1

我有問題讓我的窗體在應用代碼內容後彈出模式彈出內容編輯網絡的一部分......我正在使用的代碼如下:自定義SharePoint 2013列表/內容編輯器中的窗體模式彈出窗口只在列表中打開窗體居住在...不在彈出

HTTP://sitename/_layouts/Upload.aspx列表= {A42810A0-786D-4028-B5C8-4B8BAE083CDA} & RootFolder = "); 的javascript:返回false;」 目標=‘_自我’> 全球導航請求

請注意,我非常新的JavaScript或任何爲此事編碼此代碼一直運作良好,我過去(英寸SharePoint 2010),但現在該表單不會在彈出窗口中打開......它只會在它所在的列表中打開,我們不能擁有這些...我們的用戶不需要看到任何其他條目已提交該特定列表...

有什麼我可以做些什麼來解決這個問題?

回答

1

你的代碼看起來不完整的,但我會認爲這是一個ANCH的一部分或(<a>標籤),對不對?這本身不會打開模式彈出窗口。

如果您打開窗體的視圖或從內置Web部件編輯項目,是否在模態彈出窗口中打開它取決於列表的設置。轉到列表的設置,然後高級,最後將Launch forms in a dialog?設置爲Yes

如果你想要對任何非內置的模式彈出窗口,你必須編寫代碼,但它非常簡單。您必須使用SharePoint的全局功能,SP.UI.ModalDialog.showModalDialog。用法是這樣的:

function openModal(pageToOpen) { 
    SP.UI.ModalDialog.showModalDialog({ 
     url: pageToOpen, 
     width: 800, 
     height: 600 
    }); 
} 

而且在任何HTML元素:

<foo onclick="openModal('http://sitename/_layouts/Upload.aspx?List={A42810A0-786D-4028-B5C8-4B8BAE083CDA}&RootFolder=')"> 

如果它是一個錨,你還是要保持它的導航離開頁面。一個簡單的return false可能無法在所有瀏覽器上運行,所以我建議你也在Stack Overflow中進行搜索。

返回SP.UI.ModalDialog.showModalDialog - 你傳遞給該函數一個參數,一個具有一些屬性的簡單對象。我在上面傳遞的屬性是:

  • 網址:應該在模式彈出打開的頁面;
  • 寬度和高度:任意值,真的。除非您需要任意大小的彈出窗口,否則不必傳遞這些內容。

更多關於此方法的信息可以參考in the official documentation。您可以看到參數對象可能具有比我的示例中更多的屬性。本文檔適用於SharePoint 2010,但此功能在SP2010和SP2013之間沒有更改。祝你好運,快樂編碼:)

相關問題