如何在Sharepoint中调试JavaScript? - 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使用的情况。

参考方案

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

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

要检查以下内容:在服务器上,在部署位置查找aspx(通常为C:\Program Files\Common Files\microsoft shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\<ProjectName>\),然后查看该应用程序页面中是否引用了脚本文件。

也可能是页面上的另一个脚本文件已在正在加载目标脚本文件的配置单元中被修改:我会检查配置单元中的脚本文件中是否有SP.SOD.executeexecuteFuncEnsureScriptFunc之类的调用,或者只是SP.SOD。(除了明显寻找文件名之外)

也:可以通过其他解决方案(如果有)将脚本添加为委托控件,因此检查是否可以获取源代码可能是另一回事。

45码