使用jquery在iframe的头部追加元素

我想使用jquery将样式表(css)链接附加到iframe的头部。 我尝试使用以下代码但不工作。

$('#tabsFrame').contents().find("head").append(cssLink); 

我习惯使用这行代码将数据附加到iframe

$('body', window.frames[target].document).append(data);

在你的情况下,这条线看起来像这样

$('head', window.frames['tabsFrame'].document).append(cssLink);

编辑:

到iframe并将var cssLink更改为

cssLink = '

好吧,您可以查看:

 $('#tabsFrame').contents().find("head")[0].appendChild(cssLink); 

我相信你不能因为安全而操纵iframe的内容。 让你能够做这样的事情会使跨站点脚本太容易了。

iframe与您网页的DOM完全分开。

另外,java和javascript是两个完全不同的东西!

按照链接查看不同之处

这可能与IE不允许你在DOM中添加元素有关,请在这里查看聪明的解决方案

编辑:

谢谢@kris,在案例链接中添加更多信息的好建议:

以下是链接中的主要代码段,以防它再次出现。 (这只需要一些IE版本,大多数情况下,其他答案工作得很好)

 var ifrm; //attempts to retrieve the IFrame document function addElementToFrame(newStyle) { if (typeof ifrm == "undefined") { ifrm = document.getElementById('previewFrame'); if (ifrm.contentWindow) { ifrm = ifrm.contentWindow; } else { if (ifrm.contentDocument.document) { ifrm = ifrm.contentDocument.document; } else { ifrm = ifrm.contentDocument; } } } //Now that we have the document, look for an existing style tag var tag = ifrm.document.getElementById("tempTag"); //if you need to replace the existing tag, we first need to remove it if (typeof tag != "undefined" || tag != null) { $("#tempTag", ifrm.document).remove(); } //add a new style tag $("HEAD", ifrm.document).append(""); }