Ignore:
Timestamp:
12/09/05 13:43:04 (14 years ago)
Author:
gocher
Message:

Changes to CharCounter? Plugin
and updates of extended example to check it

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/examples/Extended.html

    r324 r433  
    1616}; 
    1717 
    18 function comboSelectValue(c, val) { 
    19         var ops = c.getElementsByTagName("option"); 
    20         for (var i = ops.length; --i >= 0;) { 
    21                 var op = ops[i]; 
    22                 op.selected = (op.value == val); 
    23         } 
    24         c.value = val; 
    25 }; 
     18function getSelectedValue(el) { 
     19  if(!el) 
     20    return ""; 
     21  return el[el.selectedIndex].value; 
     22} 
     23 
     24function setSelectedValue(el, val) { 
     25  if(!el) 
     26    return ""; 
     27  var ops = el.getElementsByTagName("option"); 
     28  for (var i = ops.length; --i >= 0;) { 
     29    var op = ops[i]; 
     30    op.selected = (op.value == val); 
     31  } 
     32  el.value = val; 
     33} 
     34 
     35function getCheckedValue(el) { 
     36  if(!el) 
     37    return ""; 
     38  var radioLength = el.length; 
     39  if(radioLength == undefined) 
     40    if(el.checked) 
     41      return el.value; 
     42    else 
     43      return "false"; 
     44  for(var i = 0; i < radioLength; i++) { 
     45    if(el[i].checked) { 
     46      return el[i].value; 
     47    } 
     48  } 
     49  return ""; 
     50} 
     51 
     52function setCheckedValue(el, val) { 
     53  if(!el) 
     54    return; 
     55  var radioLength = el.length; 
     56  if(radioLength == undefined) { 
     57    el.checked = (el.value == val.toString()); 
     58    return; 
     59  } 
     60  for(var i = 0; i < radioLength; i++) { 
     61    el[i].checked = false; 
     62    if(el[i].value == val.toString()) { 
     63      el[i].checked = true; 
     64    } 
     65  } 
     66} 
    2667 
    2768function __dlg_onclose() { 
     
    85126}; 
    86127 
     128function placeFocus() { 
     129var bFound = false; 
     130  // for each form 
     131  for (f=0; f < document.forms.length; f++) { 
     132    // for each element in each form 
     133    for(i=0; i < document.forms[f].length; i++) { 
     134      // if it's not a hidden element 
     135      if (document.forms[f][i].type != "hidden") { 
     136        // and it's not disabled 
     137        if (document.forms[f][i].disabled != true) { 
     138            // set the focus to it 
     139            document.forms[f][i].focus(); 
     140            var bFound = true; 
     141        } 
     142      } 
     143      // if found in this element, stop looking 
     144      if (bFound == true) 
     145        break; 
     146    } 
     147    // if found in this form, stop looking 
     148    if (bFound == true) 
     149      break; 
     150  } 
     151} 
     152 
    87153function Init() { 
    88154  __dlg_init(); 
    89155  var param = window.dialogArguments; 
    90   if (param) { 
    91     document.getElementById("width").value = param["width"]; 
    92     document.getElementById("height").value = param["height"]; 
    93     document.getElementById("sizeIncludesBars").checked = (param["sizeIncludesBars"] == 'true'); 
    94     document.getElementById("statusBar").checked = (param["statusBar"] == 'true'); 
    95     document.getElementById("mozParaHandler").value = param["mozParaHandler"]; 
    96     document.getElementById("undoSteps").value = param["undoSteps"]; 
    97     document.getElementById("baseHref").value = param["baseHref"]; 
    98     document.getElementById("stripBaseHref").checked = (param["stripBaseHref"] == 'true'); 
    99     document.getElementById("stripSelfNamedAnchors").checked = (param["stripSelfNamedAnchors"] == 'true'); 
    100     document.getElementById("only7BitPrintablesInURLs").checked = (param["only7BitPrintablesInURLs"] == 'true'); 
    101     document.getElementById("sevenBitClean").checked = (param["sevenBitClean"] == 'true'); 
    102     document.getElementById("killWordOnPaste").checked = (param["killWordOnPaste"] == 'true'); 
    103                 document.getElementById("flowToolbars").checked = (param["flowToolbars"] == 'true'); 
    104                 document.getElementById("CharacterMapMode").value = param["CharacterMapMode"]; 
    105     document.getElementById("ListTypeMode").value = param["ListTypeMode"]; 
    106      
    107   } 
    108   document.getElementById("width").focus(); 
    109         window.resizeTo(420, 500); 
    110 }; 
    111  
     156  if(param) { 
     157    var el; 
     158    for (var field in param) { 
     159      //alert(field + '="' + param[field] + '"'); 
     160      el = document.getElementById(field); 
     161      if (el.tagName.toLowerCase()=="input"){ 
     162        if ((el.type.toLowerCase()=="radio") || (el.type.toLowerCase()=="checkbox")){ 
     163          setCheckedValue(el, param[field]); 
     164        } else { 
     165          el.value = param[field]; 
     166        } 
     167      } else if (el.tagName.toLowerCase()=="select"){ 
     168        setSelectedValue(el, param[field]); 
     169      } else if (el.tagName.toLowerCase()=="textarea"){ 
     170        el.value = param[field]; 
     171      } 
     172    } 
     173  } 
     174  placeFocus(); 
     175}; 
     176 
     177// pass data back to the calling window 
    112178function onOK() { 
    113   // pass data back to the calling window 
    114   var param = { width: document.getElementById("width").value, 
    115                 height: document.getElementById("height").value, 
    116                 sizeIncludesBars: (document.getElementById("sizeIncludesBars").checked?true:""), 
    117                 statusBar: (document.getElementById("statusBar").checked?true:""), 
    118                 mozParaHandler: document.getElementById("mozParaHandler").value, 
    119                 undoSteps: document.getElementById("undoSteps").value, 
    120                 baseHref: document.getElementById("baseHref").value, 
    121                 stripBaseHref: (document.getElementById("stripBaseHref").checked?true:""), 
    122                 stripSelfNamedAnchors: (document.getElementById("stripSelfNamedAnchors").checked?true:""), 
    123                 only7BitPrintablesInURLs: (document.getElementById("only7BitPrintablesInURLs").checked?true:""), 
    124                 sevenBitClean: (document.getElementById("sevenBitClean").checked?true:""), 
    125                 killWordOnPaste: (document.getElementById("killWordOnPaste").checked?true:""), 
    126                 flowToolbars: (document.getElementById("flowToolbars").checked?true:""), 
    127                             CharacterMapMode: document.getElementById("CharacterMapMode").value, 
    128                 ListTypeOptions: document.getElementById("ListTypeMode").value 
    129                           }; 
    130         __dlg_close(param); 
     179  var param = new Object(); 
     180  var el = document.getElementsByTagName('input'); 
     181  for (var i=0; i<el.length;i++){ 
     182    if ((el[i].type.toLowerCase()=="radio") || (el[i].type.toLowerCase()=="checkbox")){ 
     183      if (getCheckedValue(el[i])!=''){ 
     184        param[el[i].id] = getCheckedValue(el[i]); 
     185      } 
     186    } else { 
     187      param[el[i].id] = el[i].value; 
     188    } 
     189  } 
     190  el = document.getElementsByTagName('select'); 
     191  for (var i=0; i<el.length;i++){ 
     192    param[el[i].id] = getSelectedValue(el[i]); 
     193  } 
     194  el = document.getElementsByTagName('textarea'); 
     195  for (var i=0; i<el.length;i++){ 
     196    param[el[i].id] = el[i].value; 
     197  } 
     198  __dlg_close(param); 
    131199  return false; 
    132200}; 
     
    145213</head> 
    146214 
    147 <body class="dialog" onload="Init()"> 
     215<body class="dialog" onload="Init(); window.resizeTo(360, 590);"> 
    148216<div class="title">Settings</div> 
    149217  <form action="" method="get"> 
     
    155223    <p /> 
    156224    <div class="fr">Size includes bars</div> 
    157       <input type="checkbox" name="sizeIncludesBars" id="sizeIncludesBars" /> 
     225      <input type="checkbox" name="sizeIncludesBars" id="sizeIncludesBars" value="true" /> 
    158226    <p /> 
    159227    <div class="fr">Status Bar</div> 
    160       <input type="checkbox" name="statusBar" id="statusBar" /> 
     228      <input type="checkbox" name="statusBar" id="statusBar" value="true" /> 
    161229    <p /> 
    162230    <div class="fr">Mozilla Parameter Handler:</div> 
     
    174242    <p /> 
    175243    <div class="fr">Strip base href</div> 
    176       <input type="checkbox" name="stripBaseHref" id="stripBaseHref" /> 
     244      <input type="checkbox" name="stripBaseHref" id="stripBaseHref" value="true" /> 
    177245    <p /> 
    178246    <div class="fr">Strip self named anchors</div> 
    179       <input type="checkbox" name="stripSelfNamedAnchors" id="stripSelfNamedAnchors" /> 
     247      <input type="checkbox" name="stripSelfNamedAnchors" id="stripSelfNamedAnchors" value="true" /> 
    180248    <p /> 
    181249    <div class="fr">only 7bit printables in URLs</div> 
    182       <input type="checkbox" name="only7BitPrintablesInURLs" id="only7BitPrintablesInURLs" /> 
     250      <input type="checkbox" name="only7BitPrintablesInURLs" id="only7BitPrintablesInURLs" value="true" /> 
    183251    <p /> 
    184252    <div class="fr">7bit Clean</div> 
    185       <input type="checkbox" name="sevenBitClean" id="sevenBitClean" /> 
     253      <input type="checkbox" name="sevenBitClean" id="sevenBitClean" value="true" /> 
    186254    <p /> 
    187255    <div class="fr">kill Word on paste</div> 
    188       <input type="checkbox" name="killWordOnPaste" id="killWordOnPaste" /> 
     256      <input type="checkbox" name="killWordOnPaste" id="killWordOnPaste" value="true" /> 
    189257    <p /> 
    190258    <div class="fr">flow toolbars</div> 
    191       <input type="checkbox" name="flowToolbars" id="flowToolbars" /> 
     259      <input type="checkbox" name="flowToolbars" id="flowToolbars" value="true" /> 
     260    <p /> 
     261    <div class="fr">show loading</div> 
     262      <input type="checkbox" name="showLoading" id="showLoading" value="true" /> 
    192263    <p /> 
    193264 
    194265    <div id="CharacterMapOptions" class="options"> 
    195266    <hr size="0.5"> 
    196                 <div class="fr">CharacterMap mode :</div> 
    197                   <select id="CharacterMapMode" name="CharacterMapMode"> 
     267    <div class="fr">CharacterMap mode :</div> 
     268      <select id="CharacterMapMode" name="CharacterMapMode"> 
    198269        <option value="popup">popup</option> 
    199270        <option value="panel">panel</option> 
    200271      </select> 
    201           </div> 
     272    </div> 
    202273    <p /> 
    203274 
    204275    <div id="ListTypeOptions" class="options"> 
    205                 <hr size="0.5"> 
     276    <hr size="0.5"> 
    206277    <div class="fr">ListType mode :</div> 
    207                   <select id="ListTypeMode" name="ListTypeMode"> 
     278      <select id="ListTypeMode" name="ListTypeMode"> 
    208279        <option value="toolbar">toolbar</option> 
    209280        <option value="panel">panel</option> 
    210281      </select> 
    211282    </div> 
    212                 <p /> 
    213        
     283    <p /> 
     284 
     285    <div id="CharCounterOptions" class="options"> 
     286    <hr size="0.5"> 
     287    <div class="fr">CharCounter (showChar) :</div><input type="checkbox" name="showChar" id="showChar" value="true" /><br /> 
     288    <div class="fr">CharCounter (showWord) :</div><input type="checkbox" name="showWord" id="showWord" value="true" /><br /> 
     289    <div class="fr">CharCounter (showHtml) :</div><input type="checkbox" name="showHtml" id="showHtml" value="true" /> 
     290    </div> 
     291    <p /> 
     292 
    214293  <div id="buttons"> 
    215294    <button type="submit" name="ok" onclick="return onOK();">OK</button> 
Note: See TracChangeset for help on using the changeset viewer.