首页 > 解决方案 > 获取后运行javascript?

问题描述

我有 index.php,其中包含一个按钮和一个 div。我有 index.js 以及另外两个文件:next.php 和 next.js。Index.js 为按钮添加了一个事件监听器。单击它时,会调用 fetch 将 next.php 加载到 div 中。Next.php 有另一个按钮。next.js 将事件侦听器添加到引发警报的下一个按钮。

问题是,无论我尝试什么,我都无法让 javascript 在第二个按钮上触发,除非我将事件侦听器添加到 fetch 调用本身。

function getScreen(screenFileName) {
fetch('./files/php/' + screenFileName + '.php')
  .then(res => res.text())
  .then(html => {
    const parser = new DOMParser();
    const htmlDoc = parser.parseFromString(html, "text/html");
    document.getElementById('ScreenViewer').innerHTML = html;
    document.getElementById("btnBTN").addEventListener("click", function() {
        alert("text?");
    }, true);
  })
}

document.getElementById("btnPush").addEventListener("click", function() {
    getScreen("next");
}, true);

此代码有效,但在大型项目中会非常快速地变得不守规矩。我曾希望我可以在获取的 php 文件末尾包含一个标签并让它可用,但这不起作用。将脚本标记中的下一个按钮的事件侦听器代码添加到 next.php 文件的末尾也不起作用。无论如何,我可以在获取 next.php 后获取一个 javascript 文件以附加并运行 next.js 吗?

为什么在 next.php 中没有解析 script 标签?

任何帮助,将不胜感激。

标签: javascriptphphtml

解决方案


推荐阅读