Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ajax加载jquery htmlbox_Javascript_Ajax_Jquery - Fatal编程技术网

Javascript 使用ajax加载jquery 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

我使用此代码将htmlbox实例加载到我的页面(此页面还加载必要的库,以便在标题部分使用htmlbox):


函数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()
的原因是什么?