Javascript 需要帮助将页面中直接编码的代码移动到我的站点资产,以允许参数和重用吗

Javascript 需要帮助将页面中直接编码的代码移动到我的站点资产,以允许参数和重用吗,javascript,sharepoint-2013,Javascript,Sharepoint 2013,我正在尝试将我在页面上嵌入的一些代码移动到我的站点资产中,以允许我通过传入参数来重用这些代码,而不是在多个页面上复制相同的代码 当我将脚本直接放入脚本编辑器时,它就可以工作了。我现在正试图将它放入我的站点资产中,并从脚本编辑器中引用它。我现在不能让它工作 在脚本编辑器中将下面的代码直接插入到我的页面时,效果非常好 <script type="text/javascript"> $(function () { //set section text and field name

我正在尝试将我在页面上嵌入的一些代码移动到我的站点资产中,以允许我通过传入参数来重用这些代码,而不是在多个页面上复制相同的代码

当我将脚本直接放入脚本编辑器时,它就可以工作了。我现在正试图将它放入我的站点资产中,并从脚本编辑器中引用它。我现在不能让它工作

在脚本编辑器中将下面的代码直接插入到我的页面时,效果非常好

<script type="text/javascript">
$(function () {
    //set section text and field name
    AddSectionBeforeField("Phase Section","Phase");

});
function AddSectionBeforeField(sectionText,fieldName){
    var $fieldTR=$(".ms-standardheader nobr:contains('"+fieldName+"')").closest("tr");
    $fieldTR.before("<tr style='background-color:white'><td colspan='2' class='ms-formbody' style='padding:0; color: #96c03d;'><div style='font-size:22px;margin-top: 10px;margin-bottom: 10px;font-family: Oswald';'>"+sectionText+"</div></td></tr>");
}

function changeButtonStyle()
{ 
    var inputs = document.getElementsByTagName("input");  

alert('aa');
    for(i = 0; i<inputs.length; i++)  
    {   
       if(inputs[i].type == "button" && inputs[i].value == "Save")
       {
          inputs[i].style.backgroundColor='#96C03D'; 
          inputs[i].style.color ='white';   
          inputs[i].style.width= "160px";
          inputs[i].style.height = "40px";
          inputs[i].style.fontSize = "16px";
       }
        if(inputs[i].type == "button" && inputs[i].value == "Cancel")
       {
          inputs[i].style.backgroundColor='#96C03D'; 
          inputs[i].style.color ='white';   
          inputs[i].style.width= "160px";
          inputs[i].style.height = "40px";
          inputs[i].style.fontSize = "16px";
       }           
      }  
}
_spBodyOnLoadFunctionNames.push("changeButtonStyle");
</script>

$(函数(){
//设置节文本和字段名
AddSectionBeforeField(“阶段部分”、“阶段”);
});
函数AddSectionBeforeField(sectionText,fieldName){
var$fieldTR=$(“.ms standardheader nobr:包含(“+fieldName+”)))。最近的(“tr”);
$fieldTR.before(“+sectionText+”);
}
函数changeButtonStyle()
{ 
var inputs=document.getElementsByTagName(“输入”);
for(i=0;i并不是对您的问题的真正答案,但需要很多代码来进行注释。

一个简单的CSS规则可以让你避免循环寻找应用样式的按钮

按钮[value=“Cancel”],
按钮[value=“Save”]{
背景色:#96C03D;
颜色:白色;
宽度:160px;
高度:40px;
字体大小:16px;
}
测试
拯救

执行一些测试和更多观察后取消。任何脚本的引用都是相对于页面在URL中的位置。对于站点页面,SiteAssets的引用是../SiteAssets。对于列表页面,引用是.././SiteAssets。如果您真的想一想,这非常简单。很抱歉浪费了人们的时间,但这是非常简单的一些我不知道的事情。

似乎很奇怪,它不只是一个包含CSS规则的类,而不是所有JavaScript。我不是一个熟练的web开发人员,这可能就是原因。我用一个非常简单的引用做了一些测试,似乎SharePoint wiki页面的行为可能与“创建”的页面不同编辑SharePoint列表记录时。在站点资产中对该代码的简单引用适用于SharePoint页面,但在编辑列表记录时不适用于“页面”。$(document).ready(function(){alert('测试引用Javascript');});我刚刚发现,如果您的站点位于wiki页面上,而不是位于列表“页面”上,则站点资产的路径是不同的。我发现了一些关于在浏览器中作为步骤1检查javascript错误的参考。我现在正在处理这些问题。因此,当您查看网络面板时,它是404吗?控制台中是否有错误?我试图实现您的css。我知道的唯一方法是添加CEWP,并将其指向htm文档,并将该引用指向我的css、 我的htm文档是:更正:我试图实现你的css。我知道的唯一方法是添加CEWP,让它指向htm文档并引用我的css。我的htm文档是:我的css与你的完全一样e编码并放置在SiteAssets/css中。没有效果。当我使用Chrome的开发者工具查看控制台时,没有错误消息。
<script type="text/javascript" src="../SiteAssets/js-test/EditChanges.js"></script>
$(function () {
    //set section text and field name
    AddSectionBeforeField("Phase Section","Phase");

});
function AddSectionBeforeField(sectionText,fieldName){
    var $fieldTR=$(".ms-standardheader nobr:contains('"+fieldName+"')").closest("tr");
    $fieldTR.before("<tr style='background-color:white'><td colspan='2' class='ms-formbody' style='padding:0; color: #96c03d;'><div style='font-size:22px;margin-top: 10px;margin-bottom: 10px;font-family: Oswald';'>"+sectionText+"</div></td></tr>");
}

function changeButtonStyle()
{ 
    var inputs = document.getElementsByTagName("input");  

    for(i = 0; i<inputs.length; i++)  
    {   
       if(inputs[i].type == "button" && inputs[i].value == "Save")
       {
          inputs[i].style.backgroundColor='#96C03D'; 
          inputs[i].style.color ='white';   
          inputs[i].style.width= "160px";
          inputs[i].style.height = "40px";
          inputs[i].style.fontSize = "16px";
       }
        if(inputs[i].type == "button" && inputs[i].value == "Cancel")
       {
          inputs[i].style.backgroundColor='#96C03D'; 
          inputs[i].style.color ='white';   
          inputs[i].style.width= "160px";
          inputs[i].style.height = "40px";
          inputs[i].style.fontSize = "16px";
       }           
      }  
}
_spBodyOnLoadFunctionNames.push("changeButtonStyle");