1

我想为具有索引index--first的第一页添加一个类。pageType这不仅可以是主页(在这种情况下,这将是一个简单的测试data:blog.url == data:blog.homepageUrl),还可以是关键字搜索产生的第一页或第一个标签页。

在这一点上,我有以下代码(它工作得很好):

<body expr:class='(data:blog.pageType) + (data:blog.searchLabel ? " index--label" : "") + (data:blog.searchQuery ? " index--query" : "")'>
  <!-- more stuff here -->
</body>

这样做是index为所有索引页添加一个类,index--label为所有也是标签页的索引页添加一个类index--query,为也是搜索查询结果的所有索引页添加一个类。

我仍然需要以某种方式捕获URLindex中不包含的类型的页面并在其上updated-max添加index--first类。

这不起作用,我收到“无效表达式”错误:

<body expr:class='(data:blog.pageType == "index" ? ("index" + (data:blog.url.indexOf("updated-max") != -1 ? " index--home" : "")) : "") + (data:blog.searchLabel ? " index--label" : "") + (data:blog.searchQuery ? " index--query" : "")'>
</body>

那么正确的方法是什么?

我不是在寻找 JavaScript 解决方案,它的使用indexOf()只是我的一个疯狂猜测(遗憾的是,一个疯狂的猜测是我最好的选择,因为 Blogger 资源有限),而不是尝试在其中使用 JavaScript。

4

3 回答 3

1

这应该工作

<body expr:class='data:blog.pageType'>
  <b:class cond='data:view.search.label' name='index--label'/>
  <b:class cond='data:view.search.query' name='index--query'/>
  <b:class cond='data:view.isMultipleItems and (data:view.url not contains "updated-max=")' name='index--first'/>

  <!-- more stuff here -->
</body>
于 2020-05-08T21:07:06.640 回答
1

你可以这样做

<body>
  <b:class cond='data:view.isHomepage' name='index--first'/>
  <b:class cond='data:view.isPost' name='index--first'/>
  <b:class cond='data:view.isPage' name='index--first'/>
  <b:class cond='data:view.isArchive' name='index--first'/>
  <b:class cond='data:view.search.label' name='index--label'/>
  <b:class cond='data:view.search.query' name='index--query'/>

</body>
于 2020-05-09T05:38:59.857 回答
0

您不能indexOf直接在 Blogger 数据表达式中使用 JavaScript 方法,因为它们是两种不同的语言并且在不同的方面运行。

你可以这样做

<b:if cond='data:blog.pageType == "index"'>
   <script>
      var blogUrl = '<data:blog.url/>';
      var cls = 'index--home';

      <b:if cond='data:blog.searchLabel'>
          cls = 'index--label';
      </b:if>
      <b:if cond='data:blog.searchQuery'>
          cls = 'index--query';
      </b:if>

      if (blogUrl.indexOf("search?updated-max") == -1) {
          document.body.classList.add(cls);
      }
   </script>
</b:if>
于 2020-05-08T12:26:53.330 回答