unicode-bidi-isolate-basic.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. function buildTable()
  2. {
  3. var seed = 0;
  4. var neutrals = ['"', ")", "("];
  5. var strongRTLs = ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ז'];
  6. var strongLTRs = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
  7. var neutral = function() { return neutrals[seed++ % neutrals.length]; }
  8. var strongRTL = function() { return strongRTLs[seed++ % strongRTLs.length]; }
  9. var strongLTR = function() { return strongLTRs[seed++ % strongLTRs.length]; }
  10. var charClassExamples = [neutral, strongRTL, strongLTR];
  11. var possibleDirs = ['ltr', 'rtl'];
  12. var elem=document.getElementById("elem");
  13. for (outerDirIndex in possibleDirs) {
  14. var outerDir = possibleDirs[outerDirIndex];
  15. for (beforeSpanIndex in charClassExamples) {
  16. var beforeSpan = charClassExamples[beforeSpanIndex];
  17. for (spanDirIndex in possibleDirs) {
  18. var spanDir = possibleDirs[spanDirIndex];
  19. for (inSpanIndex in charClassExamples) {
  20. var inSpan = charClassExamples[inSpanIndex];
  21. for (afterSpanIndex in charClassExamples) {
  22. var afterSpan = charClassExamples[afterSpanIndex];
  23. function caseWithStyle() {
  24. seed = 0;
  25. var outerDiv = document.createElement("div");
  26. outerDiv.dir = outerDir;
  27. outerDiv.appendChild(document.createTextNode(beforeSpan()));
  28. var span = document.createElement("span");
  29. span.dir = spanDir;
  30. span.setAttribute("class", "enclosed")
  31. span.appendChild(document.createTextNode(inSpan()));
  32. outerDiv.appendChild(span);
  33. outerDiv.appendChild(document.createTextNode(afterSpan()));
  34. return outerDiv;
  35. }
  36. elem.appendChild(caseWithStyle());
  37. }
  38. }
  39. }
  40. }
  41. }
  42. }