jQuery content()更改iframe在Firefox中消失的html [英] Jquery contents() change html for iframe disappear in firefox
本文介绍了jQuery content()更改iframe在Firefox中消失的html的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
// Use ckeditor created a iframe dom.
var iframe_node = new CKEDITOR.dom.element('iframe');
var iframe_styles = {
'font-size':'inhert',
'z-index':'10030',
'position':'absolute',
'left':'250px',
'top':'50px',
'width':'505px',
'height':'441px'
};
iframe_node.setStyles(iframe_styles);
// Append iframe to cke_dialog
jQuery(iframe_node.$).appendTo('.cke_dialog');
var seciframecon = jQuery('.cke_dialog').find("iframe").contents();
iframe_node = jQuery(iframe_node.$)[0];
console.log(seciframecon.find('html').html());
// I get <head></head><body></body>
seciframecon.find('html').html(htmloutput);
console.log(seciframecon.find('html').html());
我得到的字符串如下
<div class="ctools-modal-content> <div class="modal-header"> <span class="modal-title" id="modal-title" style="font-size:20px;">Format</span> <input value="format_facet" name="selectedfacet" type="hidden"> <a href="#" class="close"><img title="Close window" alt="Close window" src="xxxx" typeof="foaf:Image"> </a> </div> <div class="modal-content" id="modal-content" style="width: 475px; height: 355px;"> <table> <thead> <tr><th style="text-align:center;width:70px;">Include</th> <th style="text-align:center;width:70px;">Exclude</th> <th>Format</th> </tr> </thead> <tbody> <tr class="odd"> <td style="text-align:center;width:70px;"><div>balabalabala ....
这应该可以更改IFRAME内容,
但在Firefox中不起作用!
html显示来自Firebug的内容,如下所示。
<iframe style="z-index: 10030; position: absolute; left: 250px; top: 50px; width: 505px; height: 441px;">
<html>
<head>
</head>
<body>
</body>
</html>
HTML已附加,然后很快在Firefox中消失
为什么console.log(seciframecon.find('html').html());
之后可以获取字符串,
但是IFRAME内容在Firefox浏览中仍然是空白的?
它在Chrome中运行良好。
有什么提示吗?
推荐答案
最后,我修复了它。 原因是
IFRAME在我尝试修改时未强制加载。
通过将加载绑定到此iFrame域,它可以在Firefox中工作。
jQuery(iframe_node.$).load('/topic-page/ajax/ckedialogpopup/' + selecttermfacet + '/' + filter, function(){
CKEDITOR.scriptLoader.load(
[
"/sites/all/themes/pharosui_omega/ckeditor/jsrender.min.js"
],
function() {
...
当我在做这件事的时候,我遇到了另一个问题 jQuery.load()在Chrome中不起作用 我通过将数据更新到网络服务器来修复它,而不是从本地获取数据, 原因jQuery加载函数不适用于本地(html/text)数据。
希望这能帮助他人。
这篇关于jQuery content()更改iframe在Firefox中消失的html的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文