為了在Sharepoint環境下實現對Javascript的調試,我們需要考慮如下的設定:
1、首先就是在IE瀏覽器中的設定,你需要查看你的IE是否Enable了script debugging。
具體操作是在Internet Explorer中,找到 "Tools"-->"Internet Options"找到 "Advanced" 頁,並在此頁下找到以下兩項:
Disable Script Debugging (Internet Explorer)
Disable Script Debugging (Other)
保證這兩項不被選中。
2、針對Sharepoint中的ECMAScript object model,你會在網上找到有關文章需要你分別設定Webapplication的Web.config以及Machine.config
修改它們的目的是為了可以載入入 debug版本的js檔案以支援調試。
你可以通過此處 來瞭解相關內容。
2.1修改Web.config,在此描述網上有關文章如何設定的,但對我的環境卻沒有作此設定,原因在後面說明
此Web.config檔案在目錄%inetpub%\wwwroot\wss\VirtualDirectories\[YourWebsitePort]
找到此檔案內的system.web節,在裡面添加如下代碼
<deployment retail="false" />
修改後的Web.config效果如:
如果作了此設定,當你運行你的Sharepoint應用時,會出現如下報錯:
It is an error to use a section registered as allowDefinition='MachineOnly' beyond machine.config
錯誤如:
有文說此選項應該只在machine.config中提供,目的是為了防止使用者修改這個選項。所以,針對我的環境,我就沒有設定此個Web.config了。
如果要載入Debug版的javascript,你還需要在<compilation batch="false" debug="true">裡的debug設為true即可。
2.2修改Machine.config
此檔案在目錄C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\下
找到此檔案的如下代碼
<section name="deployment" type="System.Web.Configuration.DeploymentSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineOnly"/>
把allowDefinition="MachineOnly"刪除,改成
<section name="deployment" type="System.Web.Configuration.DeploymentSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
修改後的檔案如:
3、現在你可以在你的Javascript代碼任何地方加入debugger並設定斷點來啟用你的debugger了。
當你的斷點被Hit到時,你的Sharepoint網站會彈出一個視窗,要你啟動相應的Debugger,如:
選擇Debugger後,就可以看到你的Javascript斷點並進行調試了,如:
如果你不能如願以償地附加到Debugger上,你可以查看你的註冊表設定,找到如下鍵:
HKEY_CURRENT_USER\Software\Microsoft\Windows Script\Settings
把JITDebug的(如果沒有就加上它)值設定為1.
4、當然,我們還可以啟動IE裡的Developer Tools來Debug我們的Javascript/ECMAScript。
具體操作方法可以參考此文SharePoint 【ECMAScript物件模型系列】-- 03. 如何查看SP object的所有方法(method)
轉載:http://www.cnblogs.com/wsdj-ITtech/archive/2012/07/06/2415559.html