【问题标题】:dynamically inserted javascript is not executing动态插入的 javascript 未执行
【发布时间】:2014-03-12 02:40:39
【问题描述】:

我正在尝试制作一个使用 d-pad 导航的 webapp,所以我使用键盘上的按键, 出于某种原因,我不想重新加载或重定向页面,所以我只是使用 ajax 更改内容:

        var xhr;
        xhr=new XMLHttpRequest();
        xhr.open("GET","pages.php?page="+page ,  false);
        xhr.send();
        $('body').html(xhr.responseText);

好的,它工作正常,内容被替换没有问题,但内容中的 javascript 没有执行......

注意:我不想将 javascript 放在页面的头部的原因就像我很伤心我正在使用按键,并且在不同的页面上我每次按键都表现不同......

【问题讨论】:

  • 你注入了什么样的javascript代码?您应该在插入代码后调用您添加的代码
  • 另外,为什么要混合使用 jQuery 并启动自己的 AJAX?如果您已经在使用 jQuery,则应该使用其相关的 AJAX 功能
  • 这似乎一开始就不是问题。你能详细说明你的应用是什么吗?
  • 我使用 js 为按键添加一个事件监听器,然后我得到它的键码......这样我就可以用它做其他事情......
  • @Blender 它是一个用于电视的网络应用程序

标签: javascript jquery html ajax


【解决方案1】:

这里的问题是您将所有内容都包含在您的 php 页面中,并将 html 和 javascript 代码作为 html 内容添加到正文...这意味着它作为正文附加数据的文本。因此,您的脚本将无法按预期工作。

【讨论】:

    【解决方案2】:

    使用jquery get函数:

    $.get("pages.php?page="+page,function(data){
        $("body").html(data);
    });
    

    【讨论】:

    • 问题不在于替换内容...... javascript 工作正常,但替换的代码不能,但无论如何感谢
    • 抱歉没有正确阅读,其他答案更有用。
    【解决方案3】:

    试一试,

    也许你可以利用 eval(),(但正如所说,eval 是邪恶的)。

    参考这个: Executing javascript script after ajax-loaded a page - doesn't work

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      • 2011-09-06
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 2017-01-15
      • 2013-07-10
      相关资源
      最近更新 更多