我遇到了以下问题:
我有我的index.html页面,带有div#content。在这个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;
});
现在一切正常,加载的页面就像它们应该显示的那样。 虽然在我加载的一个页面中,但我包含了一个令人信服的编辑器(Nicedit)
<script type="text/javascript" src="../../nicedit/nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
</script>
当我通过索引加载此页面时(使用.load函数),wysiwyg编辑器不显示(也使用TinyMCE测试)。当我只访问页面独立(通过URL)时,所见即所得的编辑器显示完美,因此路径设置正确。还使用我的索引中包含的wysiwyg js进行了测试
为了测试.load页面是否包含javascript,我在wysiwyg编辑器的页面上插入了一个警告。 虽然wysiwyg编辑器没有显示,但此警报确实显示。
有人知道如何解决这个问题吗?
全部感谢
答案 0 :(得分:0)
您是否检查过生成的DOM并查看编辑器标记是否已附加到您的页面?
这些WYSIWYG编辑器中的大多数(全部?)都使用iframe。我不确定他们如何决定它的大小,但我想,因为你发送textarea作为参数,他们使用该textarea的维度。因此,请确保textarea的大小足够大并检查注入的iframe是否足够大。
编辑:
如果在启动编辑器时不知道你的textarea在哪里就很难找到问题(请更多代码?)。
我认为问题出现在bkLib.onDomLoaded中,它在DOM加载的那一刻运行。但是,jQuery的ready()确实(几乎)做了同样的事情。因此,当您调用load()来获取页面内容时,DOM已经被加载,因此bkLib.onDomLoaded将不会运行。
您需要做的是在请求的.php页面加载后实例化编辑器:
$('#content_container').load('pageWithEditorScript.php', function() {
nicEditors.allTextAreas();
});