Javascript 使用ajax加载jquery htmlbox
我使用此代码将htmlbox实例加载到我的页面(此页面还加载必要的库,以便在标题部分使用htmlbox):Javascript 使用ajax加载jquery htmlbox,javascript,ajax,jquery,Javascript,Ajax,Jquery,我使用此代码将htmlbox实例加载到我的页面(此页面还加载必要的库,以便在标题部分使用htmlbox): 函数showEditPnl(){ var pnl=document.getElementById(“容器”); if(window.XMLHttpRequest){ //IE7+、Firefox、Chrome、Opera、Safari的代码 xmlhttp=新的XMLHttpRequest(); }否则{ //IE6、IE5的代码 xmlhttp=新的ActiveXObject(“Mic
函数showEditPnl(){
var pnl=document.getElementById(“容器”);
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
pnl.innerHTML=xmlhttp.responseText;
}
};
open(“GET”,“ajax_getEditor.html”,true);
xmlhttp.send();
}
以下是ajax_getEditor.html文件:
<textarea id='ha'></textarea>
<script language="Javascript" type="text/javascript">
$("#ha").css("height","100%").css("width","100%").htmlbox({
toolbars:[["link","unlink","image"]],
skin:"blue"
});
</script>
$(“#ha”).css(“高度”、“100%”).css(“宽度”、“100%”).htmlbox({
工具栏:[“链接”、“取消链接”、“图像”],
皮肤:“蓝色”
});
调用
showEditPnl()
方法时,我会在页面中看到文本区域和脚本。但似乎没有执行脚本(通过ajax加载)。当我从ajax_getEditor.html复制代码并将其放在容器中时,一切正常。我确信这是一个非常基本的问题,但我不知道如何解决它。看起来我又是个笨蛋了。需要在调用页面中加载脚本。仅在页面中加载带有innerHTML的脚本标记不会执行其中的代码。谢谢你指出这一点:)看来我又是个蠢货了。需要在调用页面中加载脚本。仅在页面中加载带有innerHTML的脚本标记不会执行其中的代码。感谢您指出这一点:)作为注释状态,这是使用的结果。像您目前这样,这个答案与问题有点不相干
您可以在这里使用,因为您已经包含了jQuery来简化一些事情。您将用以下内容替换当前函数:
function showEditPnl() {
$("#container").load("ajax_getEditor.html");
}
或者,您可以在回调中运行脚本,而不是从获取的页面加载脚本,如下所示:
function showEditPnl() {
$("#container").load("ajax_getEditor.html", function() {
$("#ha").css({height:"100%", width: "100%"}).htmlbox({
toolbars:[["link","unlink","image"]],
skin:"blue"
});
});
}
在本例中,我还将传递一个对象,以将其减少为一个调用,而不是两个调用。作为注释状态,这是使用的结果。与您当前的情况类似,这个答案与问题有点不相干
您可以在这里使用,因为您已经包含了jQuery来简化一些事情。您将用以下内容替换当前函数:
function showEditPnl() {
$("#container").load("ajax_getEditor.html");
}
或者,您可以在回调中运行脚本,而不是从获取的页面加载脚本,如下所示:
function showEditPnl() {
$("#container").load("ajax_getEditor.html", function() {
$("#ha").css({height:"100%", width: "100%"}).htmlbox({
toolbars:[["link","unlink","image"]],
skin:"blue"
});
});
}
在本例中,我还将传递一个对象,以将其减少为一个调用,而不是两个调用。如何通过ajax加载脚本?要点:我只需调用ajax_getEditor.html,并将responseText放入容器div中。因此我认为这将自动在ajax_getEditor.html中执行脚本,但显然情况并非如此。如果您只是通过设置innerHTML
将脚本放入div,则不会执行脚本。看起来您是对的。我将代码放入onReadystateChanged方法中的脚本标记中,然后一切正常。谢谢你的帮助@user296430:如果已经包含了jQuery,您为什么不使用.load()
呢?您到底是如何通过ajax加载脚本的?尖刻:我只是调用ajax\u getEditor.html,并将responseText放入容器div中。所以我想这会自动在ajax\u getEditor.html中执行脚本,但显然情况并非如此。如果您只是通过设置innerHTML
将脚本放入div,则不会执行脚本。看起来您是对的。我将代码放入onReadystateChanged方法中的脚本标记中,然后一切正常。谢谢你的帮助@user296430:如果已经包含jQuery,那么您不使用.load()
的原因是什么?