Javascript 依赖项未通过 Ajax 加载

标签 javascript php ajax

我有一个index.php 文件,它将根据$_GET 变量加载内容。所以,它的功能基本上是这样的......

<?php
   $problem_id = $_GET['problem_id'];
   include('include/' . $problem_id . '.php');
?>

因此,如果用户单击问题类型#8,8.php将包含在index.php文件中并显示其内容。

问题是我现在使用AJAX来加载8.php (或选择任何文件)。某些文件依赖于其他 javascript 文件(即 <script type="text/javascript" src="/include/js/api/utils.js"></script> )才能工作。当我通过 AJAX 运行 index.php 文件时,似乎没有加载这些依赖项。如果我在 URL 中使用普通的 $_GET 变量(即 http://myscript.com?problem_id=8 )运行它,它就可以正常工作。

这是 AJAX 的已知问题吗?无论如何?

谢谢。

最佳答案

您尚未指定所需 JavaScript 文件的加载位置。但是,如果我们假设它们包含在您的 php 脚本中,那么当您直接访问该 php 脚本时它们会起作用,但当您通过 ajax 包含它时它们不会起作用。

我的建议是一种简单的方法,即在您的调用页面 (index.php) 中包含所有 JavaScript,以便它可以随时运行,无论动态加载哪些内容。

因此请务必提前加载依赖项,并且不要将它们包含在您包含的 php 文件中。

当你通过ajax加载内容时,它确实需要是可以合并到现有页面DOM中的html,加载javascript并执行它并不是那么简单,尽管这是可能的(使用requirejs或类似的),但我认为也许上面的简单方法适合您。

关于Javascript 依赖项未通过 Ajax 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24295414/

相关文章:

javascript - 如何将 jQuery/Javascript 函数显示到 <pre> (字符串)?

php - html框的垂直对齐

javascript - 我如何使这个 javascript 验证工作?

php - is_page() 条件在 AJAX 函数内不起作用

php - 默认内容放在哪里?代码还是数据库?

javascript - Ajax 在返回值之前等待响应

javascript - 我可以使用 AJAX + 跨域 + jsonp 测试 URL 是否可达吗?

javascript - jQuery 在 Chrome 下查找错误的元素

javascript - TinyMCE 3 高级主题到 TinyMCE 4

javascript - 将输入值格式化为用户类型