【发布时间】:2012-12-17 17:11:18
【问题描述】:
我的网站在检查浏览器兼容性的代码中存在一个众所周知的错误。这是有问题的代码:
strScriptEngineVer = ScriptEngineMajorVersion() + '.' + ScriptEngineMinorVersion();
if (ScriptEngineMajorVersion() < 5 || ScriptEngineMinorVersion() < 5)
{
AddTestResultRow('ScriptEngine',
'Error',
'Script Engine', // TRANS: msgScriptEngine
strScriptEngineVer,
// TRANS: msgScriptEngineWrongVersion
'Your version of MS Script Engine is not sufficient, Centricity Enterprise Web will not function correctly.');
// TRANS: msgErrorCannotGoOn
ShowStopMessage('There is an error, Centricity Enterprise Web cannot go on.');
return false;
}
此代码导致 Internet Explorer 9 失败,因为 Jscript 引擎版本是 9.0。虽然从逻辑上讲,9.0 大于 5.8(IE 8),但上述代码失败,因为“次要版本”报告为 0,而 0 小于 5。我想做的(如果可能的话)是绕过这个通过报告不同的 Jscript 版本进行检查,或者注入 javascript 代码来替换损坏的代码。我知道可以在 IE 的开发人员模式下执行后者(请参阅:https://braininstitute.mch.com/wiki/Centricity_Enterprise_Web),但我需要一种更自动化的方法。
任何帮助将不胜感激。
【问题讨论】:
-
定义你自己的
ScriptEngineMajorVersion():function ScriptEngineMajorVersion() { return 999; }。然后对开发人员大喊大叫,那是一些非常愚蠢的代码。
标签: javascript jquery internet-explorer jscript