Platform-DOM.st 942 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. Smalltalk createPackage: 'Platform-DOM'!
  2. Object subclass: #PlatformDom
  3. instanceVariableNames: ''
  4. package: 'Platform-DOM'!
  5. !PlatformDom class methodsFor: 'node creation'!
  6. newDocumentFragment
  7. <inlineJS: 'return document.createDocumentFragment()'>
  8. !
  9. newElement: aString
  10. <inlineJS: 'return document.createElement(aString)'>
  11. !
  12. newTextNode: aString
  13. <inlineJS: 'return document.createTextNode(aString)'>
  14. ! !
  15. !PlatformDom class methodsFor: 'testing'!
  16. isDomNode: anObject
  17. <inlineJS: '
  18. return anObject.nodeType > 0 &&
  19. Object.prototype.toString.call(anObject) !!== "[object Object]"
  20. '>
  21. !
  22. isFeasible
  23. <inlineJS: '
  24. if (typeof document === "undefined") return false;
  25. try {
  26. var d = document.createElement("div"),
  27. f = document.createDocumentFragment(),
  28. t = document.createTextNode("Hello, Amber!!");
  29. f.appendChild(t);
  30. d.insertBefore(f, null);
  31. return d.innerHTML === "Hello, Amber!!";
  32. } catch (e) {
  33. return false;
  34. }
  35. '>
  36. ! !