错字3:如何删除页面上的空段落

idl*_*erg 4 html formatting typo3 paragraphs

我正在使用Typo3 v6.1来创建"文本"类型的标准页面.在视图中,Typo3在富文本编辑器上创建的内容之前和之后添加了四个空段落.

<p class="bodytext">&nbsp;</p>
<p class="bodytext">    <!--  CONTENT ELEMENT, uid:17/text [begin] --></p>
<p class="bodytext">        <a id="c17"></a></p>
<p class="bodytext">        <!--  Text: [begin] --></p>    

<p class="bodytext">The actual text added using the Rich Text Editor</p>    

<p class="bodytext">        <!--  Text: [end] --></p>
<p class="bodytext">&nbsp;</p>
<p class="bodytext">    <!--  CONTENT ELEMENT, uid:17/text [end] --></p>
<p class="bodytext">&nbsp;</p>  
Run Code Online (Sandbox Code Playgroud)

不用说,我想摆脱这种混乱,特别是因为它&nbsp;打破了布局.

mah*_*ltz 8

在错误的地方有一个parseFunc <lib.parseFunc_RTE.

看起来你有类似的东西

page.10 = CONTENT
page.10.stdWrap.parseFunc < lib.parseFunc_RTE
Run Code Online (Sandbox Code Playgroud)

这意味着:呈现内容,然后使用lib.parseFunc_RTE解析此内容.激活包装的代码是

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.wrapNonWrappedLines = <p>|</p>
Run Code Online (Sandbox Code Playgroud)

删除不会解决这里的问题,因为原因是,lib.parseFunc_RTE是在整个内容元素上处理的,而不仅仅是在应该定义它的bodytext上.

查看TypoScript或将其添加到您的问题中.

用于测试目的:

在顶层创建一个新站点,并仅添加基本TypoScript(添加css_styled_content模板;检查清除设置和常量)

page = PAGE
page.10 < styles.content.get
Run Code Online (Sandbox Code Playgroud)

检查输出,内容不应再包含在p class ="bodytext"中.

更新:

使用{content}通过styles.content.get fe填充{content},parseFunc执行两次.styles.content.get执行了parseFunc,因此可以输出到浏览器.但是f:format.html也执行了lib.parseFunc.所以,这就是为什么你的内容被解析两次.

# in this case, f:format.html does not need to execute the parseFunc again
<f:format.html  parseFuncTSPath="">{content}</f:format.html>
Run Code Online (Sandbox Code Playgroud)

如果您有RTE字段,请使用lib.parseFunc_RTE,如果您不希望字段中有HTML-Code(fe标头),请使用lib.parseFunc.


Har*_*iya 5

在 root 的模板脚本中添加以下行

在常量中:

content.RTE_compliant = 0
Run Code Online (Sandbox Code Playgroud)

在设置中:

tt_content.stdWrap.dataWrap >
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines>
Run Code Online (Sandbox Code Playgroud)


Aun*_*uya -5

请将此代码添加到 body 标记末尾上方,

<script>
   var elems = document.getElementsByTagName('p');
   var elemsLenght = elems.length;
   for (var i = 0; i < elemsLenght; ++i) {
       if (elems[i].innerHTML == '' || elems[i].innerHTML == ' ' || >elems[i].innerHTML == '&nbsp;')
      { 
          elems[i].innerHTML="";
          elems[i].className="";
      }
    }
 </script>
Run Code Online (Sandbox Code Playgroud)

  • 这不是一个干净的解决方案。如果用户没有 javascript 怎么办?我认为你可以解决 TYPO3 问题 (2认同)