我面临着以下问题:
我有一个带有div#content的index.html页面。在这个div中,我通过js加载页面。
//JavaScript Document
$(document).ready(function() {
$('#loader').load('pages/loader.php').hide();
$('#content_container').load('pages/dashboard.php');
//$('.dashboard_quick_news').load('pages/quicknews.php');
});
$('.content_link').click(function(){
var href = $(this).attr('href');
$('#loader').show();
$('#content_container').hide().load(href).delay(1800).fadeIn('normal');
$('#loader').load('pages/loader.php').delay(1000).fadeOut();
return false;
});现在,这一切都很好,加载的页面得到了应有的显示。虽然在我加载的一个页面中,我包含了一个wysiwy编辑器(Nicedit)
<script type="text/javascript" src="../../nicedit/nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
</script>当我通过索引加载此页面时(使用.load函数),所见即所得编辑器不显示(也使用TinyMCE测试)。当我只是单独访问页面(通过URL)时,所见即所得编辑器显示完美,因此路径设置正确。我还使用索引中包含的所见即所得js进行了测试。
为了测试.load页面是否不包含javascript,我使用所见即所得编辑器在页面上插入了一个警告。此警报显示,但所见即所得编辑器不显示。
有人知道如何解决这个问题吗?
非常感谢!
发布于 2012-08-26 04:15:44
您是否检查了生成的DOM并查看编辑器标记是否已附加到您的页面?
大多数(全部?)其中所见即所得编辑器使用iframe。我不确定他们是如何决定它的大小的,但我猜既然你发送了一个文本区域作为参数,他们就会使用该文本区域的尺寸。因此,请确保文本区域的大小足够大,并检查注入的iframe是否足够大。
编辑:
如果不知道编辑器启动时文本区域在哪里,就很难找出问题所在(请提供更多代码?)
我认为问题出在bkLib.onDomLoaded中,它是在加载DOM时运行的。然而,jQuery的ready() (几乎)做了同样的事情。因此,当您调用load()来获取页面内容时,DOM已经加载,因此bkLib.onDomLoaded不会运行。
您需要做的是在请求的.php页面加载之后实例化编辑器:
$('#content_container').load('pageWithEditorScript.php', function() {
nicEditors.allTextAreas();
});https://stackoverflow.com/questions/12125168
复制相似问题