Вход Регистрация
Файл: library/wysihtml5/src/dom/get_as_dom.js
Строк: 108
<?php
/**
 * Returns the given html wrapped in a div element
 *
 * Fixing IE's inability to treat unknown elements (HTML5 section, article, ...) correctly
 * when inserted via innerHTML
 * 
 * @param {String} html The html which should be wrapped in a dom element
 * @param {Obejct} [context] Document object of the context the html belongs to
 *
 * @example
 *    wysihtml5.dom.getAsDom("<article>foo</article>");
 */
wysihtml5.dom.getAsDom = (function() {
  
  var 
_innerHTMLShiv = function(htmlcontext) {
    var 
tempElement context.createElement("div");
    
tempElement.style.display "none";
    
context.body.appendChild(tempElement);
    
// IE throws an exception when trying to insert <frameset></frameset> via innerHTML
    
try { tempElement.innerHTML html; } catch(e) {}
    
context.body.removeChild(tempElement);
    return 
tempElement;
  };
  
  
/**
   * Make sure IE supports HTML5 tags, which is accomplished by simply creating one instance of each element
   */
  
var _ensureHTML5Compatibility = function(context) {
    if (
context._wysihtml5_supportsHTML5Tags) {
      return;
    }
    for (var 
i=0length=HTML5_ELEMENTS.lengthi<lengthi++) {
      
context.createElement(HTML5_ELEMENTS[i]);
    }
    
context._wysihtml5_supportsHTML5Tags true;
  };
  
  
  
/**
   * List of html5 tags
   * taken from http://simon.html5.org/html5-elements
   */
  
var HTML5_ELEMENTS = [
    
"abbr""article""aside""audio""bdi""canvas""command""datalist""details""figcaption",
    
"figure""footer""header""hgroup""keygen""mark""meter""nav""output""progress",
    
"rp""rt""ruby""svg""section""source""summary""time""track""video""wbr"
  
];
  
  return function(
htmlcontext) {
    
context context || document;
    var 
tempElement;
    if (
typeof(html) === "object" && html.nodeType) {
      
tempElement context.createElement("div");
      
tempElement.appendChild(html);
    } else if (
wysihtml5.browser.supportsHTML5Tags(context)) {
      
tempElement context.createElement("div");
      
tempElement.innerHTML html;
    } else {
      
_ensureHTML5Compatibility(context);
      
tempElement _innerHTMLShiv(htmlcontext);
    }
    return 
tempElement;
  };
})();
?>
Онлайн: 2
Реклама