如何在Sharepoint中调试JavaScript?

时间:2015-11-05 13:05:29

标签: javascript c# asp.net sharepoint

我刚开始在一个新的地方工作,作为软件开发人员,他们让我参与了一个需要改进的项目,以此作为让我入门的方式。

它是一个sharepoint 2010项目,它由C#和ASP组成。我在开发sharepoint方面几乎没有什么经验,所以我想在可能的情况下寻求一些帮助。基本上他们有一个包含大量活动的页面,每个活动都应该尝试并节省公司的资金。

现在,按"编辑项目" 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)
    }
};

但是当我部署sharepoint网站并使用"编辑项目"部分,JaveScript应该做的事情没有发生。我尝试调试,但调试器实际上从未进入我尝试使用的功能,这使我相信网站从未使用过JavaScript。

我的问题是:我在哪里可以检查脚本的可能用途?

我搜索了整个解决方案,并且没有引用JavaScript文件,但它在生产中运行良好,修订历史记录显示没有任何会破坏JavaScript的使用。

2 个答案:

答案 0 :(得分:2)

  

整个解决方案中都没有引用JavaScript文件

既然你提到这是匆忙完成的,也许在部署页面后在aspx中添加了脚本引用? (这是一种非常肮脏的做事方式,但不是我在共享点背景下看到的最糟糕的方式)

要检查这一点:在服务器上,在部署位置查找aspx(通常类似于:SELECT * FROM ( (SELECT Ranking, List_Date FROM example_table WHERE Ranking > 100 ORDER BY Ranking DESC) UNION (SELECT Ranking, List_Date FROM example_table WHERE List_Date BETWEEN CURDATE() - INTERVAL 90 DAY AND CURDATE() ORDER BY List_Date DESC) UNION (SELECT Ranking, List_Date FROM example_table WHERE Ranking < 100 ORDER BY Ranking DESC) ) AS NEW_TEMP ORDER BY NEW_TEMP.Ranking, NEW_TEMP.List_Date DESC )并查看脚本文件是否在那里的应用程序页面中引用。

也可能是在正在加载目标脚本文件的配置单元中修改了页面上的另一个脚本文件:我要检查配置单元中的脚本文件是否有C:\Program Files\Common Files\microsoft shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\<ProjectName>\,{{1}之类的调用}}和SP.SOD.execute或只是executeFunc。(除了明显地查找文件名)

另外:脚本可能会通过不同的解决方案(如果有的话)添加为委托控件,因此可能需要检查是否可以获取源代码。

答案 1 :(得分:0)

要调试JavaScript,请按F12打开浏览器的开发人员工具,包括JavaScript控制台。然后,您通常必须刷新页面以使代码再次运行。

您只能看到实际执行的代码生成的错误,因此如果您没有看到任何错误,您的代码可能无法正常运行。

您还可以使用JavaScript控制台手动键入部分或全部代码,以查看哪些有效,哪些无效。

我在评论中注意到,在您拨打getCurrentYear之一后,似乎缺少一组括号,但如果没有完整的代码,我无法保证这是唯一的问题。