我正在尝试使用 YUI 3 富文本编辑器,遇到了一个我不明白的事件:
当我在可编辑区域内注入来自不同来源的 iframe 时,该 iframe 的内容可以像任何其他内容一样进行编辑。我可以将光标放入 iframe 区域,例如删除字符。
这仅在 Chrome 中发生,使用 Firefox 无法编辑 iframe。尽管内部 iframe 的 DOM 与 YUI 文本编辑器的页面来源不同,但它怎么可能被操纵?
这是示例编码:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://yui.yahooapis.com/3.5.1/build/yui/yui-min.js"></script>
<script>
YUI().use('editor-base', function(Y) {
var editor = new Y.EditorBase({content: '<strong>This is <em>a test</em></strong><strong>This is <em>a test</em></strong> '});
//Add the BiDi plugin
editor.plug(Y.Plugin.EditorBidi);
//Focusing the Editor when the frame is ready..
editor.on('frame:ready', function() {this.focus();});
//Rendering the Editor.
editor.render('#editor');
});
</script>
<script>
function inject() {
var ifr = $('<iframe/>', {
style: 'display: block; width: 300px; heigth: 200px;',
src: 'http://demo.yarkon.de',
frameBorder: 0,
scrolling: 'no'
});
$('#editor').find('iframe').contents().find('body').append(ifr);
}
</script>
</head>
<body>
<button onclick='inject()'>Inject</button>
<div id="editor"></div>
</body>
</html>
Google Chrome 20:iframe 是可编辑的
Firefox 13:iframe 不可编辑