我管理一个课程管理系统(尤其是 Blackboard)并且遇到了一个我必须自己解决的问题,因为 Blackboard 无法识别该问题。简而言之,在 Blackboard 中稍后的 Service Pack 中呈现内容存在问题,该问题源于 javascript 问题。这是我的困境:
此内容区域的框架尺寸由名为“setIFrameHeightAndWidth”的函数设置。我在 Blackboard 安装中找到了该文件,并在 pastebin 链接中列举了它的内容:
我不断地对这两行进行编辑
iframeElement.style.height = iframeElement.contentWindow.document.body.scrollHeight + frameHeight + 300 +'px';
iframeElement.style.width = '100%';(the 100% change I made myself)
但是当我保存这个文件并重新加载页面时,更改并不总是坚持/应用。这是当我转到加载内容的特定页面调用此页面中的函数时发生的情况。
Blackboard 获取该 page.js 文件,然后将其复制到 3 个不同的文件中(原因未知),并将它们命名为 2F88F5F765F4753D1239E6FC3F898242.js、04785022C06B7A2CD3E35B74D652973C.js 和 A4B16A1C4776F93BE8C1A0BF21AB7C41,并将它们放在我们的外部 Blackboard 目录中。服务器是 e:\blackboard\content\vi\BBLEARN\branding__js__。
这些文件似乎是副本,或者更确切地说具有上一个 page.js 文件的属性。我已经确认了这一点,但如果我有时重新加载页面,更改不会坚持,这就是我认为发生这种情况的原因,这是我的问题。
如果我使用 Chrome 或 Firefox 的检查器来查看页面的资源,并搜索函数 setIFrameHeightAndWidth,它会返回所有 3 个文件,即我上面提到的 3 个带有字母数字名称的文件,并且不会反映它们内部的更改。我怀疑如果之前访问过该页面,那么这 3 个页面会被缓存,我不希望这种情况发生。清除我的缓存可以解决问题,但如果可能的话,我不想给我们的用户群带来负担。我注意到在 page.js 文件的顶部,有一段说:
Only include the contents of this file once - for example, if this is included in a lightbox we don't want to re-run
* all of this - just use the loaded version.
代码中有什么东西阻止了它被多次调用吗?有没有办法可以防止此特定页面被缓存,以便始终立即反映更改?谢谢你。