Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jquery select iframe children

I am using the editArea library and jquery to do what i need...

http://www.cdolivet.com/index.php?page=editArea&sess=2b8243f679e0d472397bfa959e1d3841

so in my html there is an iframe tag that editArea uses what i need is to access something like so with jquery

$('iframe textarea').keydown(function (e){    number = 17; //any number really :)     if(e.which == number){         //do something...         alert('Done...');     } }); 

I tried the above but it looks like it is not detecting that key. but it works if selector was $(document) therefore the rest of the function works it's just it's not picking up the iframes textarea keydown

any ideas? Thanks

like image 399
Val Avatar asked May 23 '10 20:05

Val


People also ask

How do I select an iframe element?

Getting the element in IframegetElementById() method by passing iframe id as an argument. const iframe = document. getElementById("myIframe"); Now, it has and contentWindow property which returns the document object by using that we can access the elements from an Iframe.

How can you access contents of iframes from another context?

You could use . contents() method of jQuery. The . contents() method can also be used to get the content document of an iframe, if the iframe is on the same domain as the main page.

How do I read Cross domain iframe content?

You can read the contents in an iframe easily via jQuery ( $(iframe). contents() ) if the domain of the webpage which contains the iframe is same as the domain of the web-page opened in iframe . The microservice responsible for uploading file was on different domain and the main app is on another domain.

How do I use iframe tags?

Definition and UsageThe <iframe> tag specifies an inline frame. An inline frame is used to embed another document within the current HTML document. Tip: Use CSS to style the <iframe> (see example below). Tip: It is a good practice to always include a title attribute for the <iframe> .


2 Answers

$("iframe").contents().find("textarea").keydown(...) 
like image 187
jAndy Avatar answered Sep 28 '22 01:09

jAndy


You need search within the inner document of the iframe, in order to get the textarea element:

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...');     } }); 
like image 39
Christian C. Salvadó Avatar answered Sep 28 '22 02:09

Christian C. Salvadó