我们有一个遗留的HTML + JavaScript代码,大约在15年前编写。我们通过使用HTML5(如搜索框等)来启用代码中的某些功能。
启用HTML-5时,复选框停止在IE-10上运行,同样的代码正在使用Firefox和Chrome。已使用标记实现了复选框功能。
以下是代码的快照。
function ClickCheckBoxImage (object)
{
if( !IsDisabled (object))
{
SetCheckBoxImage (object, !IsChecked (object))
eval (object.getAttribute ("onchange"))
}
}
Page.prototype.AddCheckBox = function (name, value, onChange,
forceNavUpdate, rebootOnChange, isReadOnly, condition)
{
var checkBox
var checkBoxHelper
var checked = value.toLowerCase() == "true"
var newElement = document.createDocumentFragment()
var checkBoxName = name + "checkbox"
onChange = (!onChange) ? "" : onChange + ";"
if (isReadOnly == null) isReadOnly = false
if(userNameglobal == 4) isReadOnly = true
onClick = "ClickCheckBoxImage(this);"
onChange += 'UpdateDependentRows (document.getElementById(\''+name+'\'));'
if (this.autoSubmit) onChange += 'SubmitOnChangeOf (\''+checkBoxName+'\');'
if (forceNavUpdate) onClick += 'UpdateNavReloadCB(this);'
// Create the checkbox Image
checkBox = CreateElement ('<img class="checkbox" '+
' name="'+checkBoxName+'" id="'+checkBoxName+'" onclick="'+onClick+'">')
checkBox.setAttribute ("onchange", onChange)
checkBox.setAttribute ("disabled", isReadOnly)
checkBox.setAttribute ("helper", name)
SetImageValue (checkBox, checked)
checkBox.src = GetCheckBoxImageName (checkBox)
this.SetCommonAttributes (checkBox, rebootOnChange, condition);
newElement.appendChild (checkBox);
// Create the helper
checkBoxHelper = CreateElement ('<input type="hidden" id="'+name+
'" name="'+name+'" value="'+value+'">');
this.SetCommonAttributes (checkBoxHelper, rebootOnChange, condition);
newElement.appendChild (checkBoxHelper);
return newElement;
}
函数ClickCheckBoxImage()已设置为onclick。在调试问题的同时,已经看到ClickCheckBoxImage()在IE-10的情况下没有调用,但它是在调用firefox和chrome的情况下。
请帮我解决此问题。
提前致谢。