在 TinyMCE 中将沙箱属性强制为特定值
Forcing sandbox attribute to specific value in TinyMCE
我正在使用 TinyMCE 作为所见即所得的编辑器,我试图让它始终向它找到的每个 iframe 添加沙箱属性,并将其重置为特定值,例如“allow-scripts allow-同源”。
我试过添加到 valid_elements:
"iframe[名称|src|srcdoc|seamless
但是没用;还有
"iframe[名称|src|srcdoc|无缝<无缝|宽度|高度|沙盒:允许脚本]"
好像不行;我试过
"iframe[名称|src|srcdoc|无缝<无缝|宽度|高度|沙盒:]"
如果缺少沙箱属性,它会正确添加,但如果该属性已经存在,则不会将其值替换为空值,正如我所期望的那样...
我做错了什么?
谢谢!
您可以尝试添加一个 node filter. The setup function 这样应该可以完成工作:
setup: function(editor) {
editor.on('PreInit', function() {
editor.parser.addNodeFilter('iframe', function(nodes) {
nodes.forEach(function(node) {
node.attr('sandbox', 'allow-scripts allow-same-origin');
});
});
});
}
它会在解析时获取每个 iframe,并强制将相关的沙箱属性设置为您想要的。
P.S。同时使用 allow-scripts
和 allow-same-origin
属性是 not a recommended practice(请参阅属性说明下方的注释)。
我正在使用 TinyMCE 作为所见即所得的编辑器,我试图让它始终向它找到的每个 iframe 添加沙箱属性,并将其重置为特定值,例如“allow-scripts allow-同源”。
我试过添加到 valid_elements:
"iframe[名称|src|srcdoc|seamless 但是没用;还有 "iframe[名称|src|srcdoc|无缝<无缝|宽度|高度|沙盒:允许脚本]" 好像不行;我试过 "iframe[名称|src|srcdoc|无缝<无缝|宽度|高度|沙盒:]" 如果缺少沙箱属性,它会正确添加,但如果该属性已经存在,则不会将其值替换为空值,正如我所期望的那样... 我做错了什么? 谢谢!
您可以尝试添加一个 node filter. The setup function 这样应该可以完成工作:
setup: function(editor) {
editor.on('PreInit', function() {
editor.parser.addNodeFilter('iframe', function(nodes) {
nodes.forEach(function(node) {
node.attr('sandbox', 'allow-scripts allow-same-origin');
});
});
});
}
它会在解析时获取每个 iframe,并强制将相关的沙箱属性设置为您想要的。
P.S。同时使用 allow-scripts
和 allow-same-origin
属性是 not a recommended practice(请参阅属性说明下方的注释)。