You are getting the head tag correctly (heads is an array with one element), but the code probably ends up trying to set the innerHTML of a DIV in the current document (not the iframe) in order to convert the <link> HTML to DOM elements. If that conversion works, the LINK element belongs to the wrong document, and some browsers won't let you append it to a different document.
Try this instead: // Add a linked stylesheet to a specific document. // Use the current document if doc is omitted. function addStylesheet( file, doc ) { doc = doc || document; var head = doc.getElementsByTagName('head')[0]; var link = doc.createElement( 'link' ); link.rel = 'stylesheet'; link.type = 'text/css'; link.href = file; head.appendChild( link ); } addStylesheet( 'selector.css', frameDocument ); -Mike > From: julio > > I get a document in iframe with IE with this: > frame = $doc.frames['myframe']; > frameDocument = frame.document; > > and it works correctly. > > but how can I get head tag to modify its content? > this doesn't work: > > var heads = frameDocument.getElementsByTagName("head"); > $(heads).append("<link rel='stylesheet' type='text/css' > href='selector.css' />");