javascript - 获取后运行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 标签?
任何帮助,将不胜感激。
解决方案
推荐阅读
- r - 在 R 中预测未来时间序列的平均值
- c# - 父表中的同一列映射到子类中的不同字段
- php - 在 Safari 中扩展侧边栏 CSS 意外行为?
- azure-sql-database - 查询还原的执行时间是否包含等待时间?或不?
- google-apps-script - 如何使用 Google 脚本将学生注册到课堂
- google-chrome-extension - Manifest.json 阻止 Chrome 扩展中的脚本标签
- java - 错误:方法 X 必须覆盖或实现超类型方法
- ruby-on-rails - Capybara 测试:VCR::Errors::UnhandledHTTPRequestError:如何解决有关 VCR 的错误?请指导
- reactjs - 为什么每次单击其处理程序中包含 axios POST 方法的按钮时,我都会退出我的 React 应用程序?
- jupyter-notebook - 除非我多次刷新,否则不会加载 Jupyter 文件