addEventListener 在没有 jquery 的情况下加载 ajax [关闭]

Posted

技术标签:

【中文标题】addEventListener 在没有 jquery 的情况下加载 ajax [关闭]【英文标题】:addEventListener load on ajax load WITHOUT jquery [closed] 【发布时间】:2014-03-02 21:51:42 【问题描述】:

我有 4 个 html 文件和 4 个 javascript 文件。每个 javascript 文件都是从每个 html 文件外部加载的

index.html 加载 javascript.js 1.html加载javascript1.js 2.html加载javascript2.js 3.html加载javascript3.js

我遇到的问题是 index.html 在按下特定按钮时使用 AJAX 加载其他 3 个页面之一。然后应该发生的是特定页面将加载其自己的相应 javascript 程序,该程序在该程序的末尾包含一个 window.addEventListener 应该在“加载”时运行并运行函数“registerListeners”。然后,RegisterListeners 在该页面上的按钮上注册一个事件侦听器,currentyl 仅显示一个用于测试的警报。

我发现当页面使用 ajax 动态加载时,window.addEventLisener 的参数“load”似乎无效。

我不能将所有代码都放在主 javascript 中,因为它包含一些 getElementById 调用,这些调用从编号页面之一调用元素,如果在主页加载时执行,则会生成错误,因为这些特定 ID 尚不存在。

这是家庭作业,所以我需要指出正确的方向,以便在不使用 jquery 的情况下使用 html5 和 javascript 执行此操作。我知道使用 jquery 可能会更容易,但我需要暂时弄清楚如何做到这一点。

会不会有window.addEventListener("AJAXload", someFunction(), false)这样的东西???

【问题讨论】:

可以修改子html文件调用父函数吗?子页面是使用 AJAX 还是父页面使用 AJAX 来添加它们?它们是被添加到 DIV 还是 iFrame 中? ***.com/questions/5968300/… 子页面没有调用 ajax,只是加载了一个具有 window.addEventListener 加载调用的脚本。它们被加载到一个 div 中。 另外,如果人们将我的问题降级并称其过于宽泛,我强烈不同意,至少有礼貌地提出一些后续问题,以便我可以澄清需要澄清的内容,就像 CubanAzcuy 所做的那样。 【参考方案1】:

您可以在 AJAX 内容的末尾插入一个纯 Javascript 函数,而不是以编程方式添加事件侦听器。这将在加载内容时运行,调用父窗口中的某些内容。

AJAX BLAH BLAH BLAH
<script type="text/javascript">
  childContentLoaded();  //or whatever you need 
</script>

您可能还需要添加“parent”.functionName()

【讨论】:

所以这将在加载的 html 页面之一上?这实际上是有道理的。它尝试运行的函数是从 ajax 加载页面开头的 javascript 调用还是从父页面调用?它需要来自头部的ajax页面加载的javascript。如果是这样的话,这应该可行。 今晚我会试试这个,如果它有效,我会将此标记为正确答案。谢谢。 所以这不起作用。我还发现,似乎根本没有 javascript 想要运行,即使是简单的警报。我尝试在 以及最后的正文中放置一个测试脚本,但无论哪种情况,基本的 javascript 都没有执行。所以看起来真正的问题是当页面被 AJAX 加载时,javascript 没有被加载。 很抱歉这对你没有用,不过我可能在这里找到了一些帮助。 ***.com/questions/4619668/… 非常感谢您的帮助。我最终弄清楚了如何让它工作。我将要加载的其他 javascript 文件放在主 html 文件的头部,然后当进行 ajax 调用以更新 innerHTML 时,我会检查正在加载的页面,然后调用适当的注册侦听器函数。看起来效果不错。

以上是关于addEventListener 在没有 jquery 的情况下加载 ajax [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

addEventListener 在没有 jquery 的情况下加载 ajax [关闭]

window.addeventlistener'scroll'为啥没有效果

Object #<Controller> 没有方法 addEventListener

removeEventListener 和 addEventListener 的“没有重载匹配此调用”

DOMContentLoaded的addEventListener()无法正常工作

Uncaught TypeError: Cannot read property 'addEventListener'