Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Sitecore后端插入自定义Java脚本_Sitecore_Sitecore6 - Fatal编程技术网

如何在Sitecore后端插入自定义Java脚本

如何在Sitecore后端插入自定义Java脚本,sitecore,sitecore6,Sitecore,Sitecore6,非常简单,我需要在Sitecores(6.4版)后端插入一个脚本-我该怎么做 脚本是否放在或中并不重要,我是否只能指定标记的src,或者我是否可以插入实际的Javascript片段也不重要(但后者更可取) 打开内容编辑器窗口时,需要将脚本插入HTML中 这不是我自己的安装,我也没有为Sitecore开发任何东西(不过我有管理员权限),所以我认为安装插件是最好的解决方案 我之前在Sitecore 5.4中插入了该脚本,但不是以一种很好的方式(编辑XML文件),如果在这里也能找到更好的解决方案,那就

非常简单,我需要在Sitecores(6.4版)后端插入一个脚本-我该怎么做

脚本是否放在
中并不重要,我是否只能指定
标记的
src
,或者我是否可以插入实际的Javascript片段也不重要(但后者更可取)

打开内容编辑器窗口时,需要将脚本插入HTML中

这不是我自己的安装,我也没有为Sitecore开发任何东西(不过我有管理员权限),所以我认为安装插件是最好的解决方案

我之前在Sitecore 5.4中插入了该脚本,但不是以一种很好的方式(编辑XML文件),如果在这里也能找到更好的解决方案,那就太好了

使用Sitecore Xpress 6中的Jens Mikkelsens答案进行更新:

我尝试将以下内容放置在web.config中:

<clientscripts>
  <everypage>
    <script src="/test.js" language="javascript" />
  </everypage>
  <htmleditor>
    <script src="/test.js" language="javascript" />
  </htmleditor>
</clientscripts>
其中,路径标记只是父文件夹名称,因此我知道加载了哪个test.js,例如inetpub\wwwroot\SitecoreWebsite\WebSite\sitecore\shell\Applications\Content Manager\test.js包含:

alert("Test Content Manager");
当我尝试使用默认的Xpress管理员用户登录时,会发生以下三种情况之一(在所有三种情况下,前端加载都没有错误,但没有脚本。我已经无法确定错误发生的时间,我唯一可以确定的是,当test.js未包含在web.config中时,不会发生错误):

案例1:

内容编辑器按预期加载,但未加载任何脚本。在包含clientscript的大多数情况下都会发生这种情况

案例2-服务器错误:

Server Error in '/' Application.

Exception Details: System.ArgumentException: Empty strings are not allowed.
Parameter name: value

Stack Trace: 

[ArgumentException: Empty strings are not allowed.
Parameter name: value]
   Sitecore.Diagnostics.Assert.ArgumentNotNullOrEmpty(String argument, String argumentName) +241
   Sitecore.Web.UI.HtmlControls.PageScriptManager.GetEveryPageScripts() +410
   Sitecore.Web.UI.HtmlControls.PageScriptManager.GetScripts() +702
   Sitecore.Web.UI.HtmlControls.Page.OnInit(EventArgs e) +62
   System.Web.UI.Control.InitRecursive(Control namingContainer) +143
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1477
案例3-Sitecore错误:

A required license is missing
Most likely causes:
The resource you are trying to access requires the following license: Runtime.
我不确定Xpress是否只是不支持clientscripts,但即使它不支持clientscripts,有时内容编辑器加载也是很奇怪的

在Sitecore 5.4完整版本中测试后更新:

正如Jens Mikkelsen回答的那样,在web.config的
部分中放置一个脚本标记确实有效。但是,有必要将其放置在
小节中,以使其显示在后端的每个页面上,而
仅适用于Sitecore 5.4中的Telerik RadEditor弹出窗口

在Sitecore 6完整版本中测试后更新:

与Sitecore 5.4所述的方法同样适用于Sitecore 6,只是增加了一点:
中嵌入的
现在需要一个
属性:

<clientscripts>
  <everypage>
    <script src="/test.js" language="javascript" key="test script" />
  </everypage>
</clientscripts>

我认为您无法在不修改文件的情况下添加脚本。但是,您可以查看web.config中的
部分。您可以在那里添加要加载的脚本。但是,我不知道它是否只会在内容编辑器中加载


我以前也尝试过这个,最后我使用了上面的设置,但我记得它也加载到了页面编辑器和桌面上。

也许你可以使用在前端的
中添加控件,但可以改为使用
管道以某种方式将新的
标记注入编辑器。

这是一个很好的例子

下有一个子节点,名为
——我想这就是你应该添加它的地方。我尝试过这种方法,遇到了一些问题-请检查我的问题,以了解这方面的更新。
<clientscripts>
  <everypage>
    <script src="/test.js" language="javascript" key="test script" />
  </everypage>
</clientscripts>