Javascript ajax()正在破坏TinyMCE 3.5.6
我构建了一个简单的CMS,其中包含多层jQuery.ajax(),如下所示:Javascript ajax()正在破坏TinyMCE 3.5.6,javascript,jquery,ajax,tinymce,rte,Javascript,Jquery,Ajax,Tinymce,Rte,我构建了一个简单的CMS,其中包含多层jQuery.ajax(),如下所示: function navto(destination, pageToEdit, insertInto) { // use JQuery's ajax method to control main navigation if (pageToEdit == "undefined") { var request = $.ajax({ url: destination }); } else {
function navto(destination, pageToEdit, insertInto) {
// use JQuery's ajax method to control main navigation
if (pageToEdit == "undefined") {
var request = $.ajax({
url: destination
});
} else {
var request = $.ajax({
type: "POST",
url: destination,
data: pageToEdit
});
}
request.done(function(msg) {
if (insertInto) { $(insertInto).html( msg ); }
else { $("#mana_content").html( msg ); }
//alert(msg);
});
request.fail(function(jqXHR, textStatus) {
alert( textStatus + ". This page could not be found." );
});
}
例如,index.php使用编辑页面来将edit_pages.php加载到
edit_pages.php使用$(文档)
(其中load\u page\u for_edit()
收集并准备发送到navto()
函数的信息)以发送类似edit\u page.php?t=template.php&c=contentID
edit_page.php使用这些值在相应的数据库中查找所需的信息,然后将类似template.php&c=content
的内容输出到自己的
。。。再次使用另一个navto()
然后,用户可以单击$('.edit#text')元素取消隐藏一个div,其中包含一个TinyMCE文本区域(称为$('#editor'))
内容由var content=$('.edit_text').html()捕获。
问题是:当我尝试将content变量加载到TinyMCE textarea--$('#editor').html(content)代码>--文本区域不接收它。我可以立即使用alert($(“#mana_editor”).html()跟进此问题
,它输出正确的内容,但HTML字符是安全的(例如,
变为p&rt;
)。但是,内容不会加载到TinyMCE中
我猜我有一个.ajax范围的问题?也许jQuery正在尝试$('#editor').html(内容)
到template.php上不存在的编辑器(回想一下,#编辑器在edit#page.php上)?有什么好的资源可以帮助我们理解.ajax的多层结构吗
小道消息、线索和我尝试过的东西:
- 我所有的jQuery函数都在functions.js文件中,除了位于edit_page.php末尾的TinyMCE init
- 仅index.php链接到functions.js
- 我正在使用TinyMCE 3.5.6和jQuery 1.7.2
- 我还尝试了TinyMCE的伪选择器(
$('textarea:TinyMCE')
,而不是$('#editor')
),它在Firebug中抛出了一个错误:jq.min.js(第4行)中的“错误:语法错误,无法识别的表达式:TinyMCE”
- 用户在TinyMCE中进行更改后,更新按钮将把新内容加载到单击的
$('.edit_text')
中。它没有加载我输入的内容,而是加载上面提到的“安全”HTML——就好像TinyMCE被完全忽略一样
- 如果我不使用整个CMS,首先在FireFox中手动输入'get_page.php?t=template&c=content',那么效果很好
- 如果我不加载TinyMCE,jQuery将把内容加载到textarea中
- 可能有什么事。。。看起来类似,但我不确定他的head.js包含什么,如何实现head.ready();,或者如果他的问题和我的一样
这是我第一个使用Ajax的项目,所以我有很多东西要学。如有任何见解/建议阅读/解决方案,将不胜感激
问题是:当我尝试将内容变量加载到
TinyMCE文本区域--$('#编辑器').html(内容);--文本区有
我没有收到。我可以立即跟进
警报($('mana_editor').html());,输出正确的内容,
但是HTML字符是安全的(例如,变成了+1个非常详细的问题和一系列尝试过的事情!感谢及时的回答和+1。问题是由于我的CMS和加载的模板加载jq.min.js。我从模板中删除了对jQuery的调用,一切正常。不幸的是,模板本身在CMS之外需要jQuery,所以现在我得到了o研究如何为我的CMS编写与php的require_once()相当的js/jQ。至于您的响应,调用$('textarea.tinymce')可以在没有tinymce.setContent()的情况下工作。不过,感谢您提供了另一种方法!(另外,很明显,在我的声望达到15之前,我不能投票。很抱歉没有+1,尽管你的回答很有帮助:))啊,是的,这是正确的-好的,你很快就可以投票了
tinymce.get('your_former_textarea_id_needs_to_be_here').setContent(content);