使用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(""); }