2011-10-19 84 views
2

是否有人成功使用Script#v 0.7.3以及SharePoint 2010? 根據我的經驗,在從頁面引用mscorelib.js(並且上帝知道還有什麼)之後,它會打破標準的SharePoint功能(如將web部件添加到webpart頁面)。 因此,Script#js運行時似乎與MS Ajax 3.5庫(隨SharePoint 2010一起提供)發生衝突。 我知道Nikhil決定不再支持MS Ajax作爲Script#的運行時。但是如果我必須使用Script#和MS Ajax在SharePoint 2010中使用腳本#

回答

1

腳本#0.8的最新版本(尚未公佈,但你會得到什麼,如果你從倉庫處的https://github.com/nikhilk/scriptsharp建)有大的變化,應該幫助這裏。

第一個腳本#不再擴展任何內置的腳本對象 - 既不是內置類型的方法,也不是它們的原型。我懷疑由於數組原型擴展(爲什麼sharepoint使用數組像字典!?),Sharepoint曾被破壞,但無論如何,這應該不會再發生。

此外,默認情況下(即,如果要將其關閉,您必須進行一些自定義),腳本#會生成AMD模式。這意味着腳本#中的所有內容都被定義爲一個模塊(名爲'ss'),並且只有依賴模塊纔會獲取對它的引用(通過聲明它們的依賴關係)。這進一步減少了衝突,在更糟糕的情況下,實際上會允許多個版本共存。

希望這將有助於...

+1

謝謝Nikhil!非常高興聽到!現在我感到絕對武裝與SharePoint客戶端開發這樣的野獸鬥爭。 –

0

如果你想使用MS Ajax,你不應該使用mscorlib。與Ajax兼容的版本是aacorlib。這是一個可行的解決方案,但是你不會擁有mscorlib中的所有功能。 我發現非常有用的閱讀PDF得到所有關於ScriptSharp常識: http://projects.nikhilk.net/Content/Projects/ScriptSharp/ScriptSharp.pdf

這是0.5.5.0版本,但所有的主要概念仍然是有效的。 但願會有很快的更新版本..

+0

作爲SharePoint 2010開發人員我已經在客戶機上使用MS的Ajax 3.5圖書館,我不考慮這種情況,當我坐上開往腳本中的V 0.5.5.0 #永遠。對我來說,可以使用兩個:mscorelib.js和MS Ajax庫。但似乎它們不能共存。因此,我無法將Script#v 0.7.3.0與SharePoint 2010一起使用。可能我無法將它用於使用MS Ajax庫的Sharepoint 2007,Asp.Net 3.5或4.0網站。如果是這樣,問題是:我可以使用Script#0.7.3.0的哪些真實世界場景?有沒有人在上述場景中成功使用Script#v 0.7.3.0? –

+1

那麼,我已經調查了這個問題,因爲無法在mscorlib.js添加的頁面上添加Web部件。它已經證明了Nikhil K.指出的完全相同的問題[鏈接](http://stackoverflow.com/questions/7843260/script-and-asp-net-updatepanels-compatibility)。也就是說,它發生是因爲mscorlib.js擴展了Array.prototype(但實際上主要問題是MS gyus如何迭代js數組)。只需谷歌一句話「Sharepoint數組原型」瞭解更多。所以剩下的唯一選擇是重新設計Script#以避免擴展Array.prototype。 –

相關問題