替换换行符
Replace line break
在 Fluid Template 和 tx_news 中,我需要用“\n”替换换行符以传递给 JavaScript 函数。
如果 JavaScript 字符串包含换行符,控制台将打印 "Unexpected token."
<a onclick="doSomething('{newsItem.bodytext}');">Click me</a>
如何在这个例子中用“\n”替换换行符?
您可以编写自己的 ViewHelper 并像这样使用它:
{namespace ns=Vendor\ExtensionName\ViewHelpers}
<a onclick="doSomething('{newsItem.bodytext -> ns:viewhelperName()}');">Click me</a>
更多信息在这里:Developing a custom ViewHelper
AS urbantrout 已经写过:你可以在 PHP 中编写自己的 viewhelper。
但您也可以使用 TypoScript-Viewhelper:
<a onclick="doSomething('{newsItem.bodytext -> f:cObject(typoscriptObjectPath: \'lib.nlReplace\')}');">Click me</a>
(因为你在一个字符串中,所以你需要转义内部的')
还有一些 TypoScript,比如
lib.nlReplace = TEXT
lib.nlReplace {
current = 1
stdWrap.replacement {
1 {
search = #\n#
replace = \n
useRegExp = 1
}
}
}
在 Fluid Template 和 tx_news 中,我需要用“\n”替换换行符以传递给 JavaScript 函数。
如果 JavaScript 字符串包含换行符,控制台将打印 "Unexpected token."
<a onclick="doSomething('{newsItem.bodytext}');">Click me</a>
如何在这个例子中用“\n”替换换行符?
您可以编写自己的 ViewHelper 并像这样使用它:
{namespace ns=Vendor\ExtensionName\ViewHelpers}
<a onclick="doSomething('{newsItem.bodytext -> ns:viewhelperName()}');">Click me</a>
更多信息在这里:Developing a custom ViewHelper
AS urbantrout 已经写过:你可以在 PHP 中编写自己的 viewhelper。
但您也可以使用 TypoScript-Viewhelper:
<a onclick="doSomething('{newsItem.bodytext -> f:cObject(typoscriptObjectPath: \'lib.nlReplace\')}');">Click me</a>
(因为你在一个字符串中,所以你需要转义内部的')
还有一些 TypoScript,比如
lib.nlReplace = TEXT
lib.nlReplace {
current = 1
stdWrap.replacement {
1 {
search = #\n#
replace = \n
useRegExp = 1
}
}
}