2015-11-05 43 views
0

我剛開始在一個新的地方工作,作爲軟件開發人員,他們把我放在一個需要改進的項目上,以此來啓動我。如何在Sharepoint中調試JavaScript?

這是一個SharePoint 2010項目,它是由C#和ASP。在共享點開發方面,我幾乎沒有經驗,所以我想盡可能尋求一些幫助。基本上他們有一個有很多活動的頁面,每個活動都應該嘗試並節省公司資金。

現在,當你按下「編輯項目」一個JavaScript執行和風格的一些呈現給你的表。由於這個項目急於進行,因此沒有文檔,並且存在硬編碼值。我想嘗試第一次是去改變它顯示爲這些中硬編碼的年份數字所以我想從這個去:

var quarters = { 
    "Q3": { 
     title: "Q3", 
     name: "Q3 (MAR-MAY)" 
    }, 
    "Q4": { 
     title: "Q4", 
     name: "Q4 (JUN-AUG)" 
    }, 
    "2015-16": { 
     title: "2015-16", 
     name: "Budget year 2015/2016" 
    }, 
    "2016-17": { 
     title: "2016-17", 
     name: "Budget year 2016/2017" 
    } 
}; 

這樣:

function getCurrentYear() { 
    var year = new Date().getFullYear(); 
    return year; 
} 

var quarters = { 
    "Q3": { 
     title: "Q3", 
     name: "Q3 (MAR-MAY)" 
    }, 
    "Q4": { 
     title: "Q4", 
     name: "Q4 (JUN-AUG)" 
    }, 
    "CurrentYear-NextYear": { 
     title: getCurrentYear + "-" + (getCurrentYear()+1).toString().substr(2,2), 
     name: "Budget year" + getCurrentYear() + "/" + getCurrentYear()+1 
    }, 
    "NextYear-YearAfterNextYear": { 
     title: (getCurrentYear() + 1) + "-" + (getCurrentYear() + 2).toString().substr(2, 2), 
     name: "Budget year " + (getCurrentYear() + 1) + "-" + (getCurrentYear() + 2) 
    } 
}; 

但是當我部署共享點站點並使用「編輯項目」部分,JaveScript應該這樣做。我試圖調試,但調試器從未真正進入我嘗試使用的函數,這導致我相信該網站從不首先使用JavaScript。

我的問題是:我會在哪裏檢查可能的腳本使用情況?

我找遍整個解決方案,無處是引用的JavaScript文件,但它工作正常生產和修訂歷史表明沒有什麼會打破的JavaScript的使用。

+0

如果此腳本未加載,則不能正確。瞭解它如何在生產中加載,併爲您的測試做同樣的事情。 – mason

+0

是的,這就是我想要做的,但似乎自從該項目作爲網站功能製作並上傳以來,它已通過Sharepoint而不是代碼進行了更改,因此我有相同功能的兩個完全不同的版本。 – OmniOwl

+0

@Vipar你在函數調用中的'getCurrentYear'之後缺少括號。 – Thriggle

回答

2

在整個解決方案,沒有一個地方的JavaScript文件中引用

既然你提到這是在也許在ASPX加入腳本參考倉促完成的頁面部署後? (這是一種非常骯髒的做事方式,但不是我在共享點環境中看到的最糟糕的方式)

檢查此項:在服務器上,在部署位置尋找aspx(通常類似於:C:\Program Files\Common Files\microsoft shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\<ProjectName>\)並查看腳本文件是否在應用程序頁面中被引用。

它也可能是頁面上的其他腳本文件中加載目標腳本文件蜂巢進行了修改:我會檢查腳本文件在蜂巢像SP.SOD.executeexecuteFuncEnsureScriptFunc或只是SP.SOD電話。(除了明顯地查找文件名)

另外:腳本可能會通過不同的解決方案(如果有的話)作爲委託控制添加,以便檢查是否可以獲取源代碼。

+0

感謝您的建議。我和另一位同事弄明白了。看起來,該腳本專門應用於表單,轉到SharePoint頁面,轉到表單所在的站點,按列表工具並輸入列表。然後按「表單Web部件」並添加一個Web部件(如果不存在)。然後,您可以編輯網頁表單並在其中添加腳本標記並添加腳本...非常髒...... <_ < – OmniOwl

0

要調試JavaScript,打F12調出瀏覽器的開發工具,包括JavaScript控制檯。然後,您通常必須刷新頁面才能讓代碼再次運行。

你只能看到實際被執行的代碼產生的錯誤,所以如果你沒有看到任何錯誤,你的代碼可能沒有運行。

您也可以使用JavaScript控制檯輸入部分或全部手工代碼,看看什麼可行,什麼不可行。

我在一條評論中指出,在對getCurrentYear的調用之一似乎有一個括號缺失,但沒有完整的代碼我不能保證這是唯一的問題。