Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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
Ajax加载内联javascript_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Ajax加载内联javascript

Ajax加载内联javascript,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,有没有办法让AJAX成功加载内联脚本函数 我似乎不明白为什么这不起作用。我正在尝试使用AJAX渲染页面,页面渲染成功;但是,除非在父文档中声明javascript函数,否则无法使内联脚本正常工作。我生成了一个简单的示例,它与我试图实现的目标相关。 父文档 <!DOCTYPE html> <html> <head> <script type='text/javascript'> fun

有没有办法让AJAX成功加载内联脚本函数

我似乎不明白为什么这不起作用。我正在尝试使用AJAX渲染页面,页面渲染成功;但是,除非在父文档中声明javascript函数,否则无法使内联脚本正常工作。我生成了一个简单的示例,它与我试图实现的目标相关。
父文档

    <!DOCTYPE html>
    <html>
      <head>
        <script type='text/javascript'>
          function loadChild(){
            var xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function() {
              if (this.readyState == 4 && this.status == 200) {
               document.getElementById("childContent").innerHTML = this.responseText;
              }
            };
            xhttp.open("GET", "./child.html", true);
            xhttp.send();
          }
        </script>
      </head>
      <body>
        <input type='button' value='Load Child' onclick='loadChild();'/>
        <div id='childContent'>

        </div>
      </body>
    </html>

函数loadChild(){
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
document.getElementById(“childContent”).innerHTML=this.responseText;
}
};
xhttp.open(“GET”,“/child.html”,true);
xhttp.send();
}

子文档

    <input type='button' value='Child Function' onclick='childFunction();'/>
    <script type='text/javascript'>
      function childFunction(){
        alert('Do something');
      }
    </script>

函数childFunction(){
警惕(“做某事”);
}


我正在尝试通过PHP创建一个自适应框架,我可以将其用于我的整个站点,并使用AJAX调用子站点进行加载;然而,要使其当前正常工作,我必须在调用每个页面之前呈现父文档中的每个函数。我想知道是否有办法让AJAX成功加载内联脚本函数?

在这种情况下,我使用两种技术来实现这一点

  • 使用jQuery使用getscript()函数加载新脚本,该脚本将自动执行该脚本
  • 例如

    $.getScript( "child.js", function( data, textStatus, jqxhr ) {
        //add this script to the document
    });
    
    这里只加载child.js,然后将其添加到文档DOM(脚本DOM),并执行child.js文件中编写的javascript函数

  • 另一种方法是将整个代码添加到DOM中。 作为DOM文本插入的JavaScript将不会执行。但是您可以使用动态脚本模式来执行新的Javascript代码
  • 请参阅堆栈溢出中的此问题:。要执行DOM,需要在javascript的child.html代码中使用eval()函数

    谢谢,祝你好运:)