gpt4 book ai didi

sitecore - 如何在 Sitecore 后端插入自定义 Javascript

转载 作者:行者123 更新时间:2023-12-02 21:55:02 27 4
gpt4 key购买 nike

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

脚本放在<head>里面也没关系或<body> ,如果我只能指定src也没关系。的<script>标签或者我是否可以插入一个实际的 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 文件),我将 js.test 放在以下位置:

  • inetpub\wwwroot\SitecoreWebsite\WebSite\sitecore\shell\Applications\Content Manager\
  • inetpub\wwwroot\SitecoreWebsite\WebSite\sitecore\shell\Applications\
  • inetpub\wwwroot\SitecoreWebsite\WebSite\sitecore\shell\
  • inetpub\wwwroot\SitecoreWebsite\WebSite\sitecore\
  • inetpub\wwwroot\SitecoreWebsite\WebSite\

test.js 的内容:

alert("Test [PATH TOKEN]");

其中路径标记只是父文件夹名称,因此我知道加载了哪个 test.js,例如inetpub\wwwroot\SitecoreWebsite\WebSite\sitecore\shell\Applications\Content Manager\test.js 包含:

alert("Test Content Manager");

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

案例1:

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

案例 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 是否根本不支持客户端脚本,但即使不支持,有时内容编辑器加载也会很奇怪。

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

将脚本标签放入 <clientscripts> 中确实有效。 Jens Mikkelsen 回答的 web.config 部分。但是,有必要将其放在 <everypage> 小节内。让它出现在后端的每个页面上,而 <htmleditor>仅适用于 Sitecore 5.4 中的 Telerik RadEditor 弹出窗口。

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

与 Sitecore 5.4 中描述的方法相同的方法也适用于 Sitecore 6,但添加了一些小东西:<script>嵌入 <clienscripts>现在需要 key属性:

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

最佳答案

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

我之前曾尝试过此操作,最终使用了上述设置,但我记得它也加载到页面编辑器和桌面上。

关于sitecore - 如何在 Sitecore 后端插入自定义 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9061967/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com