Php 使jquery以json呈现的html格式工作的问题

Php 使jquery以json呈现的html格式工作的问题,php,javascript,jquery,html,json,Php,Javascript,Jquery,Html,Json,我运行了FB bigPipe的“剥离”版本,除了jquery之外,它工作得非常完美。当我以json格式解析jquery并附加到div标记时,jquery停止工作 您可以看到我使用的“bigPipe”jquery代码 使其工作的代码非常简单。在PHP中: $data = array( 'id' => {div tag ID}, 'content' => {html content}, 'title' => {document ti

我运行了FB bigPipe的“剥离”版本,除了jquery之外,它工作得非常完美。当我以json格式解析jquery并附加到div标记时,jquery停止工作

您可以看到我使用的“bigPipe”jquery代码

使其工作的代码非常简单。在PHP中:

$data = array(
        'id' =>  {div tag ID},
        'content' => {html content},
        'title' => {document title},
        'css' =>  {...},
        'js' => {...}
        );

$output = '<script>Test.render(' . json_encode($data) . ');</script>';
}))

保存

  • 在PHP文件中,添加以下内容:
    $data=array(
    'id'=>“不工作”,
    'content'=>{指向您创建的HTML文件的链接和名称!!},
    “标题”=>“测试”,
    “css'=>”,
    'js'=>{指向您创建的js文件的链接和名称!!},
    );

  • 运行.php文件,单击click me


  • 问题解决了。这是将js文件插入body元素的方式中的一个错误。在修正代码之后。我解决了,现在一切都很完美

    如果有人试图使用此代码,以下是更改:

    function _addJsFile(filename) {
      var blody = document.getElementsByTagName("body")[0],
      script = document.createElement('script'),
      done = false;
    
      script.src = filename;
      script.type='text/javascript';
      script.onload = function() {
          if (!done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
            done = true;
            // Handle memory leak in IE
            script.onload = script.onreadystatechange = null;
            if (blody && script.parentNode) {
              blody.removeChild(script);
            }
         }
      };
    
      blody.appendChild(script);
    }
    

    jquery?我在JSFIDLE代码中没有看到任何jquery?你是说Javascript吗?你有一些Javascript错误吗?结果如何?你能提供更多的上下文吗?@winner\u joiner我更新了我的问题,提供了一个关于这应该如何工作的教程。试试看,告诉我为什么不工作:)+1用于用额外信息更新问题(甚至是JSFIDLE)和发布自找解决方案。
    function _addJsFile(filename) {
      var blody = document.getElementsByTagName("body")[0],
      script = document.createElement('script'),
      done = false;
    
      script.src = filename;
      script.type='text/javascript';
      script.onload = function() {
          if (!done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
            done = true;
            // Handle memory leak in IE
            script.onload = script.onreadystatechange = null;
            if (blody && script.parentNode) {
              blody.removeChild(script);
            }
         }
      };
    
      blody.appendChild(script);
    }