为什么我不能通过jQuery选择iframe>html>body之类的内容?
我正在使用这个插件,向我的文本区域添加一个丰富的编辑器 因此,该插件将此转换为:为什么我不能通过jQuery选择iframe>html>body之类的内容?,jquery,wysihtml5,Jquery,Wysihtml5,我正在使用这个插件,向我的文本区域添加一个丰富的编辑器 因此,该插件将此转换为: <textarea></textarea> 根据插件作者的说法: 解决方案是不监听文本区域中的keyup事件,而是 在死者身上 我就是这么做的,我听了iframe>html>body:.wysihtml5编辑器 但现在,我得到了以下错误: 未捕获的TypeError:无法读取未定义的属性“length” 因此,这意味着jQuery部分没有定位主体,因为它确实定位了不在iframe内的元素
<textarea></textarea>
根据插件作者的说法:
解决方案是不监听文本区域中的keyup事件,而是
在死者身上
我就是这么做的,我听了iframe>html>body:.wysihtml5编辑器
但现在,我得到了以下错误:
未捕获的TypeError:无法读取未定义的属性“length”
因此,这意味着jQuery部分没有定位主体,因为它确实定位了不在iframe内的元素
可能存在什么问题?有哪些可能的解决方案
您可以通过以下方式获取iframe内容: 类似这样的东西对我很有用:
var editor_body = $(".wysihtml5-sandbox").contentWindow.document.body;
$(editor_body).keyup(function() {
console.log($(this).text());
});
因为这是一个iframe-@约翰,那么,有什么办法可以让这一切顺利吗?我不相信。这是浏览器的安全性。我认为,这就像从iframe中检测到鼠标点击按钮一样。但是,我也对正确的答案感到好奇。让这成为你最喜欢的问题。你不应该使用w3schools.com上的任何东西。参观,你就会明白为什么。
wysihtml5Textarea.data("wysihtml5").editor.observe("load", function() {
wysihtml5Textarea.data("wysihtml5").editor.composer.element.addEventListener("keyup", function() {
var wysihtml5_cur_length = 0;
wysihtml5_cur_length = $('.wysihtml5-editor').val().length;
alert(wysihtml5_cur_length);
});
});
var editor_body = $(".wysihtml5-sandbox").contentWindow.document.body;
$(editor_body).keyup(function() {
console.log($(this).text());
});