javascript - 将 Sitecore 项目 url 附加到 JavaScript 变量

标签 javascript sitecore

目前我仍在学习 Sitecore,我想做的是获取 Sitecore 网站中多个页面的 URL,并使用它们在 JavaScript 中设置一些 URL。

这是我设置的 JavaScript:

 <script>
      var page_data = {
          residentialUrl: '[Sitecore page link]',
          airportsUrl: '[Sitecore page link]',
          universitiesUrl: '[Sitecore page link]',
          officesUrl: '[Sitecore page link]',
          tunnelsUrl: '[Sitecore page link]',
          hospitalsUrl: '[Sitecore page link]',
          sportsUrl: '[Sitecore page link]',
          publicSafteyUrl: '[Sitecore page link]',
          governmentUrl: '[Sitecore page link]'
      }
  </script>

如果您将每个 url 变量的 url 放在单引号内,它确实有效。但我想要的是为每个 url 变量放入 Sitecore 项目的 url。我知道如何获取 Sitecore 项目 url,但我不确定在这种情况下如何使用它们来设置上面的 url 变量?我不想硬编码链接。我希望它们从 Sitecore 的字段中提取。有办法做到这一点吗?

最佳答案

您可以采用以下一种方法(假设您的 javascript 在 Sitecore 布局或子布局中)(未经测试但希望能有所帮助)。

您可以在选择要链接到的项目时从内容编辑器中获取 Sitecore ID(替换下面的 {your-guid-here})。

此外,我不建议在生产应用中硬编码 ID:)

C#

protected void Page_Load(object sender, EventArgs e)
{
    Page.DataBind();
}

protected string ResidentialUrl {
    get {
      return GetUrl("**{your-guid-here}**");
    }
}
protected string AirportsUrl {
    get {
      return GetUrl("**{your-guid-here}**");
    }
}

private string GetUrl(string guid)
{
    // get item from the current database (usually web or master)
    var item = Sitecore.Context.Database.GetItem(new Sitecore.Data.ID(guid));
    // use LinkManager to get the public URL
    return Sitecore.Links.LinkManager.GetItemUrl(item);
} 

JS:

 <script>
  var page_data = {
      residentialUrl: '<%#Eval("ResidentialUrl")%>',
      airportsUrl: '<%#Eval("AirportsUrl")%>',
     // ... etc
  }
</script>

关于javascript - 将 Sitecore 项目 url 附加到 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28947148/

相关文章:

javascript - 从 wav 文件中读取样本

javascript - 一起比较多个字段值

solr - 如何在 Sitecore 中实现 Solr

c# - 是否可以根据用户在 sitecore 中上传的图像创建 Sprite ?

c# - Sitecore-Web Api 用户认证

javascript - JavaScript 的标准时间单位是什么?

javascript - 在函数完成或出现 DIV 后运行代码

sitecore - 自定义 Sitecore RichTextEditor 以添加默认包装器

lucene - Sitecore:以编程方式触发相关内容的重新索引

javascript - 日期范围的引导日期选择器不将值保存为指定格式