使用img的Javascript onclick在使用HTML 5启用的IE10上无效

时间:2016-06-22 07:42:03

标签: javascript html html5 internet-explorer internet-explorer-11

我们有一个遗留的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的情况下。

请帮我解决此问题。

提前致谢。

0 个答案:

没有答案