首页 > 解决方案 > 可以禁用 CMS 的冲突原生 JavaScript onSubmit 脚本吗?

问题描述

我正在构建一个非常简单的 5 题多项选择测验“游戏”,它只询问使用 HTML 单选按钮显示的 5 个简单问题,以及一个验证用户选择是否正确的 JavaScript 函数,并在提交时迭代一个“分数”单击按钮,显示“您从 X 中得到 X 正确”。基本上是一个 .js 101 项目。

我正在使用一个名为 Blackbaud Internet Solutions (BBIS) 的内容管理系统。它是 Blackbaud 专有的,允许用户构建一个功能齐全的网站,该网站与 Blackbaud 的 CRM 数据库集成。它允许您使用 HTML 构建布局,但是在内置的 HTML 编辑器中,您无需声明任何 !DOCTYPE 或 <body> 或 <head> 标签,您只需从您的第一个或其他标签开始,系统将构建每个使用它的本机 .aspx 功能的页面。BBIS 确实有一个复杂的样式表部分,允许您创建和堆叠 .css,但是 JavaScript 的处理方式不同。

想要在页面中包含 JavaScript 的 Web 开发人员必须通过创建 BBIS 所称的“未格式化文本部分”来插入该脚本。(“部分”就像一个小部件或块等。)无格式文本部分允许您在 <script> ... 和 ...</script> 之间插入任何内容:

在我的工作站本地,.html、.css 和 .js 文件都可以完美地协同工作。在 BBIS 中,HTML 渲染得很好,CSS 看起来不错,但是 JavaScript 方面根本不起作用。当您单击提交按钮时,屏幕会闪烁并且表单的 5 个单选按钮会重置为未选中状态。

使用 Chrome 的开发人员工具,我可以在 DOM 中看到 CMS (BBIS) 为聚会带来了大量不必要的 JavaScript。我确信在具有更多元素的页面上,这些脚本具有完美的逻辑功能。但是这个页面实际上是一个白色背景,页面中间只有一个测验。我的 onSubmit 按钮功能在同一页面上运行了 3-4 个其他“onSubmit”脚本,我不禁认为这是问题所在。

在 DOM 中,我可以看到我的 JavaScript 函数已插入到 <head> 标记中,因为这是我将其配置为在 BBIS“未格式化文本部分”中加载的位置。所有本机 BBIS “onSubmit 脚本”都出现在 <body> 中。有没有一种方法可以将一些 JavaScript 插入到 <head> 中,以“取出”那些 <body> BBIS “onSubmit” 脚本?

标签: javascripthtmlcssblackbaud

解决方案


编辑未格式化的文本部分,然后选择“高级选项”按钮。<head>你可以选择从那里放弃你的部分。


推荐阅读