我正在使用带有fluid styled content
的TYPO3 7.6,并且我允许我的编辑器将iframe
插入到富文本编辑器(RTE或htmlarea)中。由于Snippet,显示了iframe
。没关系。
现在我想用iframe
包裹这个typoscript
,因为iframe必须是响应式的,所以我需要......像那样,作为一个包装:
<div class="embed-container">
<iframe width="560" height="315" src="https://www.youtube.com/embed/7DRU" frameborder="0" allowfullscreen></iframe>
</div>
CSS
.embed-container {
position: relative;
padding-bottom: 56.25%; /* ratio 16x9 */
height: 0;
overflow: hidden;
width: 100%;
height: auto;
}
.embed-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
如何使用某些HTML代码封装TYPO3-RTE中的iframe
?
我试过了......像这样...但它不起作用。
### wrap iframe at RTE
lib.parseFunc_RTE {
externalBlocks := addToList(iframe)
externalBlocks {
iframe.stripNL = 1
iframe.callRecursive = 1
iframe.callRecursive.tagStdWrap.HTMLparser = 1
iframe.callRecursive.tagStdWrap.HTMLparser.tags.iframe {
fixAttrib.class.default = classOfiframe
wrap = <div>|</div>
}
}
}
或
lib.parseFunc_RTE.tags.iframe = TEXT
lib.parseFunc_RTE.tags.iframe {
wrap = <div class="test">|</div>
}
答案 0 :(得分:2)
允许您的编辑手工制作HTML会增加您的网站被XSS(跨站点脚本)攻陷的可能性。不建议允许直接输入HTML,特别是如果您不能完全信任您的编辑。
你是TypoScript几乎没问题,只有你应用属性的级别是错误的。
以下示例将问题全面展开。开头的部分基本上是通过获取内容元素来解决的 - 在这方面,它初始化要解析的状态。您的方案中只需要进行 int tabToReload=2;
var tabstrip = $("#tabstrip").data("kendoTabStrip");
loadTabStripTab($(tabstrip.contentElement(tabToReload)),'@Url.Action("SomeAction","SomeController")', someID);
function loadTabStripTab(tab,actionUrl,someID)
{
$.ajax({
type: "GET",
url: actionUrl,
datatype: "json",
traditional: true,
data: { SomeID : someID },
success: function (data, status, xhr) {
tab.html( data);
},
error: function (xhr, status, error) {
tab.html( data);
}
});
}
调整。
lib.parseFunce_RTE
这会产生以下输出 - 期望# Simulating some content
page = PAGE
page.10 = TEXT
page.10.value (
<p>Before</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/7DRU" frameborder="0" allowfullscreen></iframe>
<p>After</p>
<main>Not parsed...</main>
)
page.10.parseFunc =< lib.parseFunc_RTE
# Adjusting parsing instructions for IFRAMES
lib.parseFunc_RTE {
allowedTags := addToList(iframe)
externalBlocks := addToList(iframe)
externalBlocks {
iframe.stripNL = 1
iframe.stdWrap.wrap = <div class="frame-wrapper">|</div>
}
}
标记被编码,因为它未定义为处理。 <main>
语句负责此非匹配标记的编码。
nonTypoTagStdWrap.HTMLparser
中查找更多详情