我正在为jQuery设置一个自己制作的wysiwyg插件。他几乎已经完成但我知道我想在设计模式的iframe上添加一个keyup事件。但我不能让它奏效。我尝试了几乎所有在互联网上找到的东西。带有designmode的所见即所得iframe的类是.dhwysiwyg。我虽然下一个代码可以工作:
$(function () {
$('.dhwysiwyg', container).keyup(function () {
// the script
});
});
但这不起作用。 keyup事件不存在。
有人可以帮助我吗?
汤姆
答案 0 :(得分:2)
iframe中的页面是否加载了自己的jQuery副本?如果是这样,请在外部页面(包含iframe的页面,而不是>> iframe中的页面)中尝试此操作:
$(function() {
var frameWindow = $('.dhwysiwyg').get(0).contentWindow;
frameWindow.$('body').keyup(function() {
// handler
});
});
答案 1 :(得分:0)
我不确定您的示例的详细信息,但我知道将事件推送到iFrame有时会违反浏览器的安全策略。
答案 2 :(得分:0)
我从来没有听说过这种“设计模式”的东西(只有contentEditable)但你的问题可能是一个安全限制。什么是iframe内容,它们是否位于同一个域中?
答案 3 :(得分:0)
这种方法适合我
$(function() {
var frameWindow = $('.dhwysiwyg').get(0).contentWindow;
$(frameWindow.document).delegate("body",'keyup',function() {
var bodycontent=$(frameWindow.document.body).text();
});
});