【问题标题】:page fetched by AJAX cannot execute any javascriptAJAX 获取的页面无法执行任何 javascript
【发布时间】:2023-03-25 16:30:01
【问题描述】:

我一整天都在这样做.. 我有一个主页(index.php),里面有一个小菜单(由按钮组成)和一个<div id=tab_contents></div>

我使用 AJAX 的方式是每当我点击这些按钮中的任何一个时,都会在 tab_contents-div.ie:home_tab0.php、home_tab1.php、home_tab2.php 中分别为每个按钮加载另一个页面。

我想用 ajax 获取的页面应该包含一个 <body onload=initialize()> ...</body> 函数。或者它可以包含一个 javascript 代码 sn-p 来触发 initilization() 函数。 也就是当按钮被点击时,页面可以说 home_tab0.php 被加载,home_tab0.php 里面的代码应该触发initialization()函数。

在我的知识范围内,我已经尝试了所有可能的方法来使它工作,但没有成功......:( 如果我能得到任何帮助,我将不胜感激。

【问题讨论】:

  • 嗨,我无法在此处粘贴我的 ajax 函数...
  • 如何让你看到?

标签: javascript ajax


【解决方案1】:

使用 jQuery,可以在 ajax 调用返回并加载数据后轻松调用任何函数。我想这就是你想要做的。这里有几个例子:

http://api.jquery.com/jQuery.get/

例如:

$.get('home_tab0.php', function(data) {
  $('#tab_contents').html(data);
  initialize();
});

【讨论】:

  • 好的,我会看看 jquery...我其实不太了解如何使用它..
  • 您说使用 jquery 可以在 ajax 调用返回后调用任何函数。但是我必须在 ajax 函数中调用 initialize() 函数吗??
  • 这个函数在哪里?它的目的是什么?你能发布更多细节吗?无论如何,您将在 ajax 调用成功后执行的回调可以包括对 initialize() 的调用...
  • ajax 函数位于我包含在主页(index.php)中的一个 javascript 文件中,当我单击按钮 x、y、z 时,它应该加载 home_tab0.php、home_tab1。 php,home_tab2.php 分别在 div-tab_contents 中由 ajax.each 页面在 div-tab_contents 中调用时应该调用 javascript 函数 initialize() ...问题是:当获取 home_tab0.php 时该页面内的所有 javascript 是作为文本返回..它没有被执行。
  • 我不会在 home_tab*.php 页面中包含 javascript。我将只返回您将包含在
    中的部分 HTML。如果您需要特定的“每个标签”javascript,您可以加载它并使用 getScript 运行它:api.jquery.com/jQuery.getScript
【解决方案2】:

这是一个常见问题。我推荐使用 jQuery 并让它为你处理这个问题。重新实现他们所做的事情会浪费你的时间。

http://api.jquery.com/load/

$("#tab_contents").load("http://www.foo.com/loadContent");

【讨论】:

  • 我应该补充一点,我从来没有在 body 上设置过加载处理程序,所以不确定这是否可行。但它只适用于页面中的脚本标签。
  • 我听说我可以使用 eval()...我已经尝试寻找它..但是每次他们在论坛中提到它时..他们都不清楚实际寻找什么...
  • 您必须在返回的 HTML 中搜索
  • 还有一个问题... home_tab0.php 包含一个
    ... 初始化函数调用 map_canvas-div 来放置一些内容(a map-google maps) 在里面...但是初始化函数能在 home_tab0.php 中找到 map_canvas-div 吗?
  • 是的。 jQuery.load 通过以下方式工作: 1) 获取请求的 URL 2) 将响应中的原始 HTML 插入 DOM 3) 执行请求的 HTML 中的任何脚本。因此,脚本可以访问该文件中存在的任何元素,就好像它们已经存在于父文档中一样。
猜你喜欢
  • 2018-11-04
  • 2021-10-14
  • 1970-01-01
  • 1970-01-01
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多