适用于8以上IE版本的兼容性问题

时间:2018-04-26 11:07:39

标签: javascript

我在IE11上面临兼容性问题。代码工作正常,直到IE8,之后它没有。我们正在使用自己的框架工作。但我不确定它是否与框架或任何其他问题有关。 我在控制台中遇到的一个错误是: InvalidCharacterError。 代码段:

function makeScrollableTable(tbl,scrollFooter,height){
  var c, pNode, hdr, ftr, wrapper, rect;

  if (typeof tbl == 'string') tbl = document.getElementById(tbl);

  pNode = tbl.parentNode;
  fixTableWidth(tbl);

  c = container.length;
  container[c] = document.createElement('<SPAN style="height: 100; overflow: auto;">'); //>>> here only its throwing an error.
}

2 个答案:

答案 0 :(得分:0)

您只需使用标记名称来创建dom元素:

var span = document.createElement('SPAN');
span.style.height = '100px';
span.style.overflow = 'auto';

container[c] = span;

答案 1 :(得分:0)

您可以创建一个使用选项CSS样式规则构建元素的函数。

function createEl(tagName, options) {
  options = options || {};
  let css = options.css || {},
      el = document.createElement(tagName);
  for (let prop in css) el.style[prop] = css[prop];
  return el;
}

container[c] = createEl('SPAN', { css : { height: 100, overflow: 'auto' } });

高级版

&#13;
&#13;
function createEl(tagName, options) {
  options = options || {};
  let attrs = options.attrs || {},
      css = options.css || {},
      el = document.createElement(tagName);
  for (let prop in css) el.style[prop] = css[prop];
  for (let name in attrs) el.setAttribute(name, attrs[name]);
  if (options.text !== undefined) el.innerHTML = options.text;
  return el;
}

let spanEl = createEl('SPAN', {
  attrs : {
    class : 'foo'
  },
  css : {
    height : '100px',
    overflow : 'auto',
    background : 'DarkGrey',
    color : 'White'
  },
  text : 'Hello World'
});

document.body.appendChild(spanEl);
&#13;
.foo { padding: 0.5em; }
&#13;
&#13;
&#13;