我正在使用editArea库和jquery来做我需要的......
http://www.cdolivet.com/index.php?page=editArea&sess=2b8243f679e0d472397bfa959e1d3841
所以在我的html中有一个iframe标签,editArea使用我需要的是用jquery访问类似的东西
$('iframe textarea').keydown(function (e){
number = 17; //any number really :)
if(e.which == number){
//do something...
alert('Done...');
}
});
我尝试了以上但看起来它没有检测到那个键。但如果选择器是$(文件)它的工作原理 因此,该功能的其余部分工作就是它没有拿起iframes textarea keydown
任何想法? 感谢
答案 0 :(得分:65)
$("iframe").contents().find("textarea").keydown(...)
答案 1 :(得分:9)
您需要在iframe的内部document
内进行搜索,才能获得textarea
元素:
var textarea = $('textarea', $('iframe').get(0).contentWindow.document);
textarea.keydown(function (e){
var number = 17;
var code = (e.keyCode ? e.keyCode : e.which);
if(code == number){
//do something...
alert('Done...');
}
});
答案 2 :(得分:2)
你可以旅行任何级别,以上答案是正确的。我做了如下
var iframeMain = $("#iframe0").contents().find('#iframeMain');
var detailsForm = $(iframeMain).contents().find('#detailsform');
访问父母可以使用
window.parent.parent. // upto any level
答案 3 :(得分:1)
您需要访问iframe contentWindow.document
,而不是iframe本身。
答案 4 :(得分:0)
你应该这样做
iframeDoc = document.getElementById('resultsFrame').contentWindow;
// result frame is id of iframe
$(iframeDoc).keydown(function(e))
{
// your functionality here
}
答案 5 :(得分:0)
如果所有其他方法都失败了,我最终通过包装这个函数来完成上述工作:
$(window).blur(function () {
// genius code here
}
答案 6 :(得分:0)
下面的代码帮助了我。
$(document).ready(function(){
var iFrameDOM = $("iframe#frameID").contents();
iFrameDOM.find(".page").css("background-color", "#fff");
});