设为首页收藏本站订阅更新

无忧脚本

 找回密码
 加入无忧

QQ登录

只需一步,快速开始

搜索
查看: 160122|回复: 145

[无忧经典旧帖] == 众多高手的心血集合

[复制链接]
发表于 2003-3-15 20:47:51 | 显示全部楼层 |阅读模式
表格排序 [如果运行后看不到效果,请把内容保存为html文件再浏览]

  1. <LINK
  2. href="http://www.brainjar.com/common/default.css" type=text/css rel=stylesheet>
  3. <STYLE type=text/css>TABLE {
  4.         BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 2px solid; border-spacing: 0px; cell-spacing: 0px
  5. }
  6. TD {
  7.         PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; FONT-SIZE: 10pt; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; FONT-FAMILY: Arial, Helvetica, sans-serif; WHITE-SPACE: nowrap
  8. }
  9. TH {
  10.         PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; FONT-SIZE: 10pt; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; FONT-FAMILY: Arial, Helvetica, sans-serif; WHITE-SPACE: nowrap
  11. }
  12. TD.numeric {
  13.         TEXT-ALIGN: right
  14. }
  15. TH {
  16.         BACKGROUND-COLOR: #c0c0c0
  17. }
  18. TH.mainHeader {
  19.         COLOR: #ffffff; BACKGROUND-COLOR: #808080; TEXT-ALIGN: left
  20. }
  21. TH A {
  22.         COLOR: #000080; TEXT-DECORATION: none
  23. }
  24. TH A:visited {
  25.         COLOR: #000080
  26. }
  27. TH A:active {
  28.         COLOR: #800000; TEXT-DECORATION: underline
  29. }
  30. TH A:hover {
  31.         COLOR: #800000; TEXT-DECORATION: underline
  32. }
  33. TR.alternateRow {
  34.         BACKGROUND-COLOR: #e0e0e0
  35. }
  36. TD.sortedColumn {
  37.         BACKGROUND-COLOR: #f0f0f0
  38. }
  39. TH.sortedColumn {
  40.         BACKGROUND-COLOR: #b0b0b0
  41. }
  42. TR.alternateRow TD.sortedColumn {
  43.         BACKGROUND-COLOR: #d0d0d0
  44. }
  45. </STYLE>

  46. <SCRIPT type=text/javascript>

  47. //-----------------------------------------------------------------------------
  48. // sortTable(id, col, rev)
  49. //
  50. //  id  - ID of the TABLE, TBODY, THEAD or TFOOT element to be sorted.
  51. //  col - Index of the column to sort, 0 = first column, 1 = second column,
  52. //        etc.
  53. //  rev - If true, the column is sorted in reverse (descending) order
  54. //        initially.
  55. //
  56. // Note: the team name column (index 1) is used as a secondary sort column and
  57. // always sorted in ascending order.
  58. //-----------------------------------------------------------------------------

  59. function sortTable(id, col, rev) {

  60.   // Get the table or table section to sort.
  61.   var tblEl = document.getElementById(id);

  62.   // The first time this function is called for a given table, set up an
  63.   // array of reverse sort flags.
  64.   if (tblEl.reverseSort == null) {
  65.     tblEl.reverseSort = new Array();
  66.     // Also, assume the team name column is initially sorted.
  67.     tblEl.lastColumn = 1;
  68.   }

  69.   // If this column has not been sorted before, set the initial sort direction.
  70.   if (tblEl.reverseSort[col] == null)
  71.     tblEl.reverseSort[col] = rev;

  72.   // If this column was the last one sorted, reverse its sort direction.
  73.   if (col == tblEl.lastColumn)
  74.     tblEl.reverseSort[col] = !tblEl.reverseSort[col];

  75.   // Remember this column as the last one sorted.
  76.   tblEl.lastColumn = col;

  77.   // Set the table display style to "none" - necessary for Netscape 6
  78.   // browsers.
  79.   var oldDsply = tblEl.style.display;
  80.   tblEl.style.display = "none";

  81.   // Sort the rows based on the content of the specified column using a
  82.   // selection sort.

  83.   var tmpEl;
  84.   var i, j;
  85.   var minVal, minIdx;
  86.   var testVal;
  87.   var cmp;

  88.   for (i = 0; i < tblEl.rows.length - 1; i++) {

  89.     // Assume the current row has the minimum value.
  90.     minIdx = i;
  91.     minVal = getTextValue(tblEl.rows[i].cells[col]);

  92.     // Search the rows that follow the current one for a smaller value.
  93.     for (j = i + 1; j < tblEl.rows.length; j++) {
  94.       testVal = getTextValue(tblEl.rows[j].cells[col]);
  95.       cmp = compareValues(minVal, testVal);
  96.       // Negate the comparison result if the reverse sort flag is set.
  97.       if (tblEl.reverseSort[col])
  98.         cmp = -cmp;
  99.       // Sort by the second column (team name) if those values are equal.
  100.       if (cmp == 0 && col != 1)
  101.         cmp = compareValues(getTextValue(tblEl.rows[minIdx].cells[1]),
  102.                             getTextValue(tblEl.rows[j].cells[1]));
  103.       // If this row has a smaller value than the current minimum, remember its
  104.       // position and update the current minimum value.
  105.       if (cmp > 0) {
  106.         minIdx = j;
  107.         minVal = testVal;
  108.       }
  109.     }

  110.     // By now, we have the row with the smallest value. Remove it from the
  111.     // table and insert it before the current row.
  112.     if (minIdx > i) {
  113.       tmpEl = tblEl.removeChild(tblEl.rows[minIdx]);
  114.       tblEl.insertBefore(tmpEl, tblEl.rows[i]);
  115.     }
  116.   }

  117.   // Make it look pretty.
  118.   makePretty(tblEl, col);

  119.   // Set team rankings.
  120.   setRanks(tblEl, col, rev);

  121.   // Restore the table's display style.
  122.   tblEl.style.display = oldDsply;

  123.   return false;
  124. }

  125. //-----------------------------------------------------------------------------
  126. // Functions to get and compare values during a sort.
  127. //-----------------------------------------------------------------------------

  128. // This code is necessary for browsers that don't reflect the DOM constants
  129. // (like IE).
  130. if (document.ELEMENT_NODE == null) {
  131.   document.ELEMENT_NODE = 1;
  132.   document.TEXT_NODE = 3;
  133. }

  134. function getTextValue(el) {

  135.   var i;
  136.   var s;

  137.   // Find and concatenate the values of all text nodes contained within the
  138.   // element.
  139.   s = "";
  140.   for (i = 0; i < el.childNodes.length; i++)
  141.     if (el.childNodes[i].nodeType == document.TEXT_NODE)
  142.       s += el.childNodes[i].nodeValue;
  143.     else if (el.childNodes[i].nodeType == document.ELEMENT_NODE &&
  144.              el.childNodes[i].tagName == "BR")
  145.       s += " ";
  146.     else
  147.       // Use recursion to get text within sub-elements.
  148.       s += getTextValue(el.childNodes[i]);

  149.   return normalizeString(s);
  150. }

  151. function compareValues(v1, v2) {

  152.   var f1, f2;

  153.   // If the values are numeric, convert them to floats.

  154.   f1 = parseFloat(v1);
  155.   f2 = parseFloat(v2);
  156.   if (!isNaN(f1) && !isNaN(f2)) {
  157.     v1 = f1;
  158.     v2 = f2;
  159.   }

  160.   // Compare the two values.
  161.   if (v1 == v2)
  162.     return 0;
  163.   if (v1 > v2)
  164.     return 1
  165.   return -1;
  166. }

  167. // Regular expressions for normalizing white space.
  168. var whtSpEnds = new RegExp("^\\s*|\\s*$", "g");
  169. var whtSpMult = new RegExp("\\s\\s+", "g");

  170. function normalizeString(s) {

  171.   s = s.replace(whtSpMult, " ");  // Collapse any multiple whites space.
  172.   s = s.replace(whtSpEnds, "");   // Remove leading or trailing white space.

  173.   return s;
  174. }

  175. //-----------------------------------------------------------------------------
  176. // Functions to update the table appearance after a sort.
  177. //-----------------------------------------------------------------------------

  178. // Style class names.
  179. var rowClsNm = "alternateRow";
  180. var colClsNm = "sortedColumn";

  181. // Regular expressions for setting class names.
  182. var rowTest = new RegExp(rowClsNm, "gi");
  183. var colTest = new RegExp(colClsNm, "gi");

  184. function makePretty(tblEl, col) {

  185.   var i, j;
  186.   var rowEl, cellEl;

  187.   // Set style classes on each row to alternate their appearance.
  188.   for (i = 0; i < tblEl.rows.length; i++) {
  189.    rowEl = tblEl.rows[i];
  190.    rowEl.className = rowEl.className.replace(rowTest, "");
  191.     if (i % 2 != 0)
  192.       rowEl.className += " " + rowClsNm;
  193.     rowEl.className = normalizeString(rowEl.className);
  194.     // Set style classes on each column (other than the name column) to
  195.     // highlight the one that was sorted.
  196.     for (j = 2; j < tblEl.rows[i].cells.length; j++) {
  197.       cellEl = rowEl.cells[j];
  198.       cellEl.className = cellEl.className.replace(colTest, "");
  199.       if (j == col)
  200.         cellEl.className += " " + colClsNm;
  201.       cellEl.className = normalizeString(cellEl.className);
  202.     }
  203.   }

  204.   // Find the table header and highlight the column that was sorted.
  205.   var el = tblEl.parentNode.tHead;
  206.   rowEl = el.rows[el.rows.length - 1];
  207.   // Set style classes for each column as above.
  208.   for (i = 2; i < rowEl.cells.length; i++) {
  209.     cellEl = rowEl.cells[i];
  210.     cellEl.className = cellEl.className.replace(colTest, "");
  211.     // Highlight the header of the sorted column.
  212.     if (i == col)
  213.       cellEl.className += " " + colClsNm;
  214.       cellEl.className = normalizeString(cellEl.className);
  215.   }
  216. }

  217. function setRanks(tblEl, col, rev) {

  218.   // Determine whether to start at the top row of the table and go down or
  219.   // at the bottom row and work up. This is based on the current sort
  220.   // direction of the column and its reversed flag.

  221.   var i    = 0;
  222.   var incr = 1;
  223.   if (tblEl.reverseSort[col])
  224.     rev = !rev;
  225.   if (rev) {
  226.     incr = -1;
  227.     i = tblEl.rows.length - 1;
  228.   }

  229.   // Now go through each row in that direction and assign it a rank by
  230.   // counting 1, 2, 3...

  231.   var count   = 1;
  232.   var rank    = count;
  233.   var curVal;
  234.   var lastVal = null;

  235.   // Note that this loop is skipped if the table was sorted on the name
  236.   // column.
  237.   while (col > 1 && i >= 0 && i < tblEl.rows.length) {

  238.     // Get the value of the sort column in this row.
  239.     curVal = getTextValue(tblEl.rows[i].cells[col]);

  240.     // On rows after the first, compare the sort value of this row to the
  241.     // previous one. If they differ, update the rank to match the current row
  242.     // count. (If they are the same, this row will get the same rank as the
  243.     // previous one.)
  244.     if (lastVal != null && compareValues(curVal, lastVal) != 0)
  245.         rank = count;
  246.     // Set the rank for this row.
  247.     tblEl.rows[i].rank = rank;

  248.     // Save the sort value of the current row for the next time around and bump
  249.     // the row counter and index.
  250.     lastVal = curVal;
  251.     count++;
  252.     i += incr;
  253.   }

  254.   // Now go through each row (from top to bottom) and display its rank. Note
  255.   // that when two or more rows are tied, the rank is shown on the first of
  256.   // those rows only.

  257.   var rowEl, cellEl;
  258.   var lastRank = 0;

  259.   // Go through the rows from top to bottom.
  260.   for (i = 0; i < tblEl.rows.length; i++) {
  261.     rowEl = tblEl.rows[i];
  262.     cellEl = rowEl.cells[0];
  263.     // Delete anything currently in the rank column.
  264.     while (cellEl.lastChild != null)
  265.       cellEl.removeChild(cellEl.lastChild);
  266.     // If this row's rank is different from the previous one, Insert a new text
  267.     // node with that rank.
  268.     if (col > 1 && rowEl.rank != lastRank) {
  269.       cellEl.appendChild(document.createTextNode(rowEl.rank));
  270.       lastRank = rowEl.rank;
  271.     }
  272.   }
  273. }

  274. </SCRIPT>

  275. <META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
  276. <BODY>
  277. <P><!-- Offensive statistics table. -->
  278. <TABLE cellSpacing=0 cellPadding=0 border=0>
  279.   <THEAD>
  280.   <TR>
  281.     <TH class=mainHeader colSpan=11>NFL 2001 Offensive Stats</TH></TR>
  282.   <TR>
  283.     <TH style="TEXT-ALIGN: left">Rank</TH>
  284.     <TH style="TEXT-ALIGN: left"><A title="Team Name"
  285.       onclick="this.blur(); return sortTable('offTblBdy', 1, false);"
  286.       href="http://www.brainjar.com/dhtml/tablesort/">Team</A></TH>
  287.     <TH><SPAN title="Games Played">Gms</SPAN></TH>
  288.     <TH><A title="Total Yards"
  289.       onclick="this.blur(); return sortTable('offTblBdy',  3, true);"
  290.       href="http://www.brainjar.com/dhtml/tablesort/">Yds</A></TH>
  291.     <TH><A title="Yards Per Game"
  292.       onclick="this.blur(); return sortTable('offTblBdy',  4, true);"
  293.       href="http://www.brainjar.com/dhtml/tablesort/">Yds/G</A></TH>
  294.     <TH><A title="Total Rushing Yards"
  295.       onclick="this.blur(); return sortTable('offTblBdy',  5, true);"
  296.       href="http://www.brainjar.com/dhtml/tablesort/">RuYds</A></TH>
  297.     <TH><A title="Rushing Yards Per Game"
  298.       onclick="this.blur(); return sortTable('offTblBdy',  6, true);"
  299.       href="http://www.brainjar.com/dhtml/tablesort/">RuYds/G</A></TH>
  300.     <TH><A title="Total Passing Yards"
  301.       onclick="this.blur(); return sortTable('offTblBdy',  7, true);"
  302.       href="http://www.brainjar.com/dhtml/tablesort/">PaYds</A></TH>
  303.     <TH><A title="Passing Yards Per Game"
  304.       onclick="this.blur(); return sortTable('offTblBdy',  8, true);"
  305.       href="http://www.brainjar.com/dhtml/tablesort/">PaYds/G</A></TH>
  306.     <TH><A title="Total Points Scored"
  307.       onclick="this.blur(); return sortTable('offTblBdy',  9, true);"
  308.       href="http://www.brainjar.com/dhtml/tablesort/">Pts</A></TH>
  309.     <TH><A title="Points Per Game"
  310.       onclick="this.blur(); return sortTable('offTblBdy', 10, true);"
  311.       href="http://www.brainjar.com/dhtml/tablesort/">Pts/G</A></TH></TR></THEAD>
  312.   <TBODY id=offTblBdy>
  313.   <TR>
  314.     <TD class=numeric></TD>
  315.     <TD>Arizona</TD>
  316.     <TD class=numeric>16</TD>
  317.     <TD class=numeric>4898</TD>
  318.     <TD class=numeric>306.1</TD>
  319.     <TD class=numeric>1449</TD>
  320.     <TD class=numeric>90.6</TD>
  321.     <TD class=numeric>3449</TD>
  322.     <TD class=numeric>215.6</TD>
  323.     <TD class=numeric>295</TD>
  324.     <TD class=numeric>18.4</TD></TR>
  325.   <TR class=alternateRow>
  326.     <TD class=numeric></TD>
  327.     <TD>Atlanta</TD>
  328.     <TD class=numeric>16</TD>
  329.     <TD class=numeric>5070</TD>
  330.     <TD class=numeric>316.9</TD>
  331.     <TD class=numeric>1773</TD>
  332.     <TD class=numeric>110.8</TD>
  333.     <TD class=numeric>3297</TD>
  334.     <TD class=numeric>206.1</TD>
  335.     <TD class=numeric>291</TD>
  336.     <TD class=numeric>18.2</TD></TR>
  337.   <TR>
  338.     <TD class=numeric></TD>
  339.     <TD>Baltimore</TD>
  340.     <TD class=numeric>16</TD>
  341.     <TD class=numeric>4773</TD>
  342.     <TD class=numeric>318.2</TD>
  343.     <TD class=numeric>1598</TD>
  344.     <TD class=numeric>106.5</TD>
  345.     <TD class=numeric>3175</TD>
  346.     <TD class=numeric>211.7</TD>
  347.     <TD class=numeric>284</TD>
  348.     <TD class=numeric>18.9</TD></TR>
  349.   <TR class=alternateRow>
  350.     <TD class=numeric></TD>
  351.     <TD>Buffalo</TD>
  352.     <TD class=numeric>16</TD>
  353.     <TD class=numeric>5137</TD>
  354.     <TD class=numeric>321.1</TD>
  355.     <TD class=numeric>1686</TD>
  356.     <TD class=numeric>105.4</TD>
  357.     <TD class=numeric>3451</TD>
  358.     <TD class=numeric>215.7</TD>
  359.     <TD class=numeric>265</TD>
  360.     <TD class=numeric>16.6</TD></TR>
  361.   <TR>
  362.     <TD class=numeric></TD>
  363.     <TD>Carolina</TD>
  364.     <TD class=numeric>16</TD>
  365.     <TD class=numeric>4254</TD>
  366.     <TD class=numeric>265.9</TD>
  367.     <TD class=numeric>1372</TD>
  368.     <TD class=numeric>85.8</TD>
  369.     <TD class=numeric>2882</TD>
  370.     <TD class=numeric>180.1</TD>
  371.     <TD class=numeric>253</TD>
  372.     <TD class=numeric>15.8</TD></TR>
  373.   <TR class=alternateRow>
  374.     <TD class=numeric></TD>
  375.     <TD>Chicago</TD>
  376.     <TD class=numeric>16</TD>
  377.     <TD class=numeric>4694</TD>
  378.     <TD class=numeric>293.4</TD>
  379.     <TD class=numeric>1742</TD>
  380.     <TD class=numeric>108.9</TD>
  381.     <TD class=numeric>2952</TD>
  382.     <TD class=numeric>184.5</TD>
  383.     <TD class=numeric>338</TD>
  384.     <TD class=numeric>21.1</TD></TR>
  385.   <TR>
  386.     <TD class=numeric></TD>
  387.     <TD>Cincinnati</TD>
  388.     <TD class=numeric>16</TD>
  389.     <TD class=numeric>4800</TD>
  390.     <TD class=numeric>300.0</TD>
  391.     <TD class=numeric>1712</TD>
  392.     <TD class=numeric>107.0</TD>
  393.     <TD class=numeric>3088</TD>
  394.     <TD class=numeric>193.0</TD>
  395.     <TD class=numeric>226</TD>
  396.     <TD class=numeric>14.1</TD></TR>
  397.   <TR class=alternateRow>
  398.     <TD class=numeric></TD>
  399.     <TD>Cleveland</TD>
  400.     <TD class=numeric>16</TD>
  401.     <TD class=numeric>4152</TD>
  402.     <TD class=numeric>259.5</TD>
  403.     <TD class=numeric>1351</TD>
  404.     <TD class=numeric>84.4</TD>
  405.     <TD class=numeric>2801</TD>
  406.     <TD class=numeric>175.1</TD>
  407.     <TD class=numeric>285</TD>
  408.     <TD class=numeric>17.8</TD></TR>
  409.   <TR>
  410.     <TD class=numeric></TD>
  411.     <TD>Dallas</TD>
  412.     <TD class=numeric>16</TD>
  413.     <TD class=numeric>4402</TD>
  414.     <TD class=numeric>275.1</TD>
  415.     <TD class=numeric>2184</TD>
  416.     <TD class=numeric>136.5</TD>
  417.     <TD class=numeric>2218</TD>
  418.     <TD class=numeric>138.6</TD>
  419.     <TD class=numeric>246</TD>
  420.     <TD class=numeric>15.4</TD></TR>
  421.   <TR class=alternateRow>
  422.     <TD class=numeric></TD>
  423.     <TD>Denver</TD>
  424.     <TD class=numeric>16</TD>
  425.     <TD class=numeric>4817</TD>
  426.     <TD class=numeric>301.1</TD>
  427.     <TD class=numeric>1877</TD>
  428.     <TD class=numeric>117.3</TD>
  429.     <TD class=numeric>2940</TD>
  430.     <TD class=numeric>183.8</TD>
  431.     <TD class=numeric>340</TD>
  432.     <TD class=numeric>21.2</TD></TR>
  433.   <TR>
  434.     <TD class=numeric></TD>
  435.     <TD>Detroit</TD>
  436.     <TD class=numeric>16</TD>
  437.     <TD class=numeric>4994</TD>
  438.     <TD class=numeric>312.1</TD>
  439.     <TD class=numeric>1398</TD>
  440.     <TD class=numeric>87.4</TD>
  441.     <TD class=numeric>3596</TD>
  442.     <TD class=numeric>224.8</TD>
  443.     <TD class=numeric>270</TD>
  444.     <TD class=numeric>16.9</TD></TR>
  445.   <TR class=alternateRow>
  446.     <TD class=numeric></TD>
  447.     <TD>Green Bay</TD>
  448.     <TD class=numeric>16</TD>
  449.     <TD class=numeric>5463</TD>
  450.     <TD class=numeric>341.4</TD>
  451.     <TD class=numeric>1693</TD>
  452.     <TD class=numeric>105.8</TD>
  453.     <TD class=numeric>3770</TD>
  454.     <TD class=numeric>235.6</TD>
  455.     <TD class=numeric>390</TD>
  456.     <TD class=numeric>24.4</TD></TR>
  457.   <TR>
  458.     <TD class=numeric></TD>
  459.     <TD>Indianapolis</TD>
  460.     <TD class=numeric>16</TD>
  461.     <TD class=numeric>5955</TD>
  462.     <TD class=numeric>372.2</TD>
  463.     <TD class=numeric>1966</TD>
  464.     <TD class=numeric>122.9</TD>
  465.     <TD class=numeric>3989</TD>
  466.     <TD class=numeric>249.3</TD>
  467.     <TD class=numeric>413</TD>
  468.     <TD class=numeric>25.8</TD></TR>
  469.   <TR class=alternateRow>
  470.     <TD class=numeric></TD>
  471.     <TD>Jacksonville</TD>
  472.     <TD class=numeric>16</TD>
  473.     <TD class=numeric>4840</TD>
  474.     <TD class=numeric>302.5</TD>
  475.     <TD class=numeric>1600</TD>
  476.     <TD class=numeric>100.0</TD>
  477.     <TD class=numeric>3240</TD>
  478.     <TD class=numeric>202.5</TD>
  479.     <TD class=numeric>294</TD>
  480.     <TD class=numeric>18.4</TD></TR>
  481.   <TR>
  482.     <TD class=numeric></TD>
  483.     <TD>Kansas City</TD>
  484.     <TD class=numeric>16</TD>
  485.     <TD class=numeric>5673</TD>
  486.     <TD class=numeric>354.6</TD>
  487.     <TD class=numeric>2008</TD>
  488.     <TD class=numeric>125.5</TD>
  489.     <TD class=numeric>3665</TD>
  490.     <TD class=numeric>229.1</TD>
  491.     <TD class=numeric>320</TD>
  492.     <TD class=numeric>20.0</TD></TR>
  493.   <TR class=alternateRow>
  494.     <TD class=numeric></TD>
  495.     <TD>Miami</TD>
  496.     <TD class=numeric>16</TD>
  497.     <TD class=numeric>4821</TD>
  498.     <TD class=numeric>301.3</TD>
  499.     <TD class=numeric>1664</TD>
  500.     <TD class=numeric>104.0</TD>
  501.     <TD class=numeric>3157</TD>
  502.     <TD class=numeric>197.3</TD>
  503.     <TD class=numeric>344</TD>
  504.     <TD class=numeric>21.5</TD></TR>
  505.   <TR>
  506.     <TD class=numeric></TD>
  507.     <TD>Minnesota</TD>
  508.     <TD class=numeric>16</TD>
  509.     <TD class=numeric>5006</TD>
  510.     <TD class=numeric>333.7</TD>
  511.     <TD class=numeric>1523</TD>
  512.     <TD class=numeric>101.5</TD>
  513.     <TD class=numeric>3483</TD>
  514.     <TD class=numeric>232.2</TD>
  515.     <TD class=numeric>287</TD>
  516.     <TD class=numeric>19.1</TD></TR>
  517.   <TR class=alternateRow>
  518.     <TD class=numeric></TD>
  519.     <TD>New England</TD>
  520.     <TD class=numeric>16</TD>
  521.     <TD class=numeric>4882</TD>
  522.     <TD class=numeric>305.1</TD>
  523.     <TD class=numeric>1793</TD>
  524.     <TD class=numeric>112.1</TD>
  525.     <TD class=numeric>3089</TD>
  526.     <TD class=numeric>193.1</TD>
  527.     <TD class=numeric>371</TD>
  528.     <TD class=numeric>23.2</TD></TR>
  529.   <TR>
  530.     <TD class=numeric></TD>
  531.     <TD>New Orleans</TD>
  532.     <TD class=numeric>16</TD>
  533.     <TD class=numeric>5226</TD>
  534.     <TD class=numeric>326.6</TD>
  535.     <TD class=numeric>1712</TD>
  536.     <TD class=numeric>107.0</TD>
  537.     <TD class=numeric>3514</TD>
  538.     <TD class=numeric>219.6</TD>
  539.     <TD class=numeric>333</TD>
  540.     <TD class=numeric>20.8</TD></TR>
  541.   <TR class=alternateRow>
  542.     <TD class=numeric></TD>
  543.     <TD>New York Giants</TD>
  544.     <TD class=numeric>16</TD>
  545.     <TD class=numeric>5335</TD>
  546.     <TD class=numeric>333.4</TD>
  547.     <TD class=numeric>1777</TD>
  548.     <TD class=numeric>111.1</TD>
  549.     <TD class=numeric>3558</TD>
  550.     <TD class=numeric>222.4</TD>
  551.     <TD class=numeric>294</TD>
  552.     <TD class=numeric>18.4</TD></TR>
  553. </TBODY></TABLE>
  554. </BODY></HTML>
复制代码

[ 本贴由 卫星星 于 2003-3-18 11:37 最后编辑 ]
 楼主| 发表于 2003-3-15 20:49:25 | 显示全部楼层
表格排序 2  [如果运行后看不到效果,请把内容保存为html文件再浏览]


  1. <LINK
  2. href="http://www.brainjar.com/common/default.css" type=text/css rel=stylesheet>
  3. <STYLE type=text/css>TABLE {
  4.         BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 2px solid; border-spacing: 0px; cell-spacing: 0px
  5. }
  6. TD {
  7.         PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; FONT-SIZE: 10pt; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; FONT-FAMILY: Arial, Helvetica, sans-serif; WHITE-SPACE: nowrap
  8. }
  9. TH {
  10.         PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; FONT-SIZE: 10pt; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; FONT-FAMILY: Arial, Helvetica, sans-serif; WHITE-SPACE: nowrap
  11. }
  12. TD.numeric {
  13.         TEXT-ALIGN: right
  14. }
  15. TH {
  16.         BACKGROUND-COLOR: #c0c0c0
  17. }
  18. TH.mainHeader {
  19.         COLOR: #ffffff; BACKGROUND-COLOR: #808080; TEXT-ALIGN: left
  20. }
  21. TH A {
  22.         COLOR: #000080; TEXT-DECORATION: none
  23. }
  24. TH A:visited {
  25.         COLOR: #000080
  26. }
  27. TH A:active {
  28.         COLOR: #800000; TEXT-DECORATION: underline
  29. }
  30. TH A:hover {
  31.         COLOR: #800000; TEXT-DECORATION: underline
  32. }
  33. TR.alternateRow {
  34.         BACKGROUND-COLOR: #e0e0e0
  35. }
  36. TD.sortedColumn {
  37.         BACKGROUND-COLOR: #f0f0f0
  38. }
  39. TH.sortedColumn {
  40.         BACKGROUND-COLOR: #b0b0b0
  41. }
  42. TR.alternateRow TD.sortedColumn {
  43.         BACKGROUND-COLOR: #d0d0d0
  44. }
  45. </STYLE>

  46. <SCRIPT type=text/javascript>

  47. //-----------------------------------------------------------------------------
  48. // sortTable(id, col, rev)
  49. //
  50. //  id  - ID of the TABLE, TBODY, THEAD or TFOOT element to be sorted.
  51. //  col - Index of the column to sort, 0 = first column, 1 = second column,
  52. //        etc.
  53. //  rev - If true, the column is sorted in reverse (descending) order
  54. //        initially.
  55. //
  56. // Note: the team name column (index 1) is used as a secondary sort column and
  57. // always sorted in ascending order.
  58. //-----------------------------------------------------------------------------

  59. function sortTable(id, col, rev) {

  60.   // Get the table or table section to sort.
  61.   var tblEl = document.getElementById(id);

  62.   // The first time this function is called for a given table, set up an
  63.   // array of reverse sort flags.
  64.   if (tblEl.reverseSort == null) {
  65.     tblEl.reverseSort = new Array();
  66.     // Also, assume the team name column is initially sorted.
  67.     tblEl.lastColumn = 1;
  68.   }

  69.   // If this column has not been sorted before, set the initial sort direction.
  70.   if (tblEl.reverseSort[col] == null)
  71.     tblEl.reverseSort[col] = rev;

  72.   // If this column was the last one sorted, reverse its sort direction.
  73.   if (col == tblEl.lastColumn)
  74.     tblEl.reverseSort[col] = !tblEl.reverseSort[col];

  75.   // Remember this column as the last one sorted.
  76.   tblEl.lastColumn = col;

  77.   // Set the table display style to "none" - necessary for Netscape 6
  78.   // browsers.
  79.   var oldDsply = tblEl.style.display;
  80.   tblEl.style.display = "none";

  81.   // Sort the rows based on the content of the specified column using a
  82.   // selection sort.

  83.   var tmpEl;
  84.   var i, j;
  85.   var minVal, minIdx;
  86.   var testVal;
  87.   var cmp;

  88.   for (i = 0; i < tblEl.rows.length - 1; i++) {

  89.     // Assume the current row has the minimum value.
  90.     minIdx = i;
  91.     minVal = getTextValue(tblEl.rows[i].cells[col]);

  92.     // Search the rows that follow the current one for a smaller value.
  93.     for (j = i + 1; j < tblEl.rows.length; j++) {
  94.       testVal = getTextValue(tblEl.rows[j].cells[col]);
  95.       cmp = compareValues(minVal, testVal);
  96.       // Negate the comparison result if the reverse sort flag is set.
  97.       if (tblEl.reverseSort[col])
  98.         cmp = -cmp;
  99.       // Sort by the second column (team name) if those values are equal.
  100.       if (cmp == 0 && col != 1)
  101.         cmp = compareValues(getTextValue(tblEl.rows[minIdx].cells[1]),
  102.                             getTextValue(tblEl.rows[j].cells[1]));
  103.       // If this row has a smaller value than the current minimum, remember its
  104.       // position and update the current minimum value.
  105.       if (cmp > 0) {
  106.         minIdx = j;
  107.         minVal = testVal;
  108.       }
  109.     }

  110.     // By now, we have the row with the smallest value. Remove it from the
  111.     // table and insert it before the current row.
  112.     if (minIdx > i) {
  113.       tmpEl = tblEl.removeChild(tblEl.rows[minIdx]);
  114.       tblEl.insertBefore(tmpEl, tblEl.rows[i]);
  115.     }
  116.   }

  117.   // Make it look pretty.
  118.   makePretty(tblEl, col);

  119.   // Set team rankings.
  120.   setRanks(tblEl, col, rev);

  121.   // Restore the table's display style.
  122.   tblEl.style.display = oldDsply;

  123.   return false;
  124. }

  125. //-----------------------------------------------------------------------------
  126. // Functions to get and compare values during a sort.
  127. //-----------------------------------------------------------------------------

  128. // This code is necessary for browsers that don't reflect the DOM constants
  129. // (like IE).
  130. if (document.ELEMENT_NODE == null) {
  131.   document.ELEMENT_NODE = 1;
  132.   document.TEXT_NODE = 3;
  133. }

  134. function getTextValue(el) {

  135.   var i;
  136.   var s;

  137.   // Find and concatenate the values of all text nodes contained within the
  138.   // element.
  139.   s = "";
  140.   for (i = 0; i < el.childNodes.length; i++)
  141.     if (el.childNodes[i].nodeType == document.TEXT_NODE)
  142.       s += el.childNodes[i].nodeValue;
  143.     else if (el.childNodes[i].nodeType == document.ELEMENT_NODE &&
  144.              el.childNodes[i].tagName == "BR")
  145.       s += " ";
  146.     else
  147.       // Use recursion to get text within sub-elements.
  148.       s += getTextValue(el.childNodes[i]);

  149.   return normalizeString(s);
  150. }

  151. function compareValues(v1, v2) {

  152.   var f1, f2;

  153.   // If the values are numeric, convert them to floats.

  154.   f1 = parseFloat(v1);
  155.   f2 = parseFloat(v2);
  156.   if (!isNaN(f1) && !isNaN(f2)) {
  157.     v1 = f1;
  158.     v2 = f2;
  159.   }

  160.   // Compare the two values.
  161.   if (v1 == v2)
  162.     return 0;
  163.   if (v1 > v2)
  164.     return 1
  165.   return -1;
  166. }

  167. // Regular expressions for normalizing white space.
  168. var whtSpEnds = new RegExp("^\\s*|\\s*$", "g");
  169. var whtSpMult = new RegExp("\\s\\s+", "g");

  170. function normalizeString(s) {

  171.   s = s.replace(whtSpMult, " ");  // Collapse any multiple whites space.
  172.   s = s.replace(whtSpEnds, "");   // Remove leading or trailing white space.

  173.   return s;
  174. }

  175. //-----------------------------------------------------------------------------
  176. // Functions to update the table appearance after a sort.
  177. //-----------------------------------------------------------------------------

  178. // Style class names.
  179. var rowClsNm = "alternateRow";
  180. var colClsNm = "sortedColumn";

  181. // Regular expressions for setting class names.
  182. var rowTest = new RegExp(rowClsNm, "gi");
  183. var colTest = new RegExp(colClsNm, "gi");

  184. function makePretty(tblEl, col) {

  185.   var i, j;
  186.   var rowEl, cellEl;

  187.   // Set style classes on each row to alternate their appearance.
  188.   for (i = 0; i < tblEl.rows.length; i++) {
  189.    rowEl = tblEl.rows[i];
  190.    rowEl.className = rowEl.className.replace(rowTest, "");
  191.     if (i % 2 != 0)
  192.       rowEl.className += " " + rowClsNm;
  193.     rowEl.className = normalizeString(rowEl.className);
  194.     // Set style classes on each column (other than the name column) to
  195.     // highlight the one that was sorted.
  196.     for (j = 2; j < tblEl.rows[i].cells.length; j++) {
  197.       cellEl = rowEl.cells[j];
  198.       cellEl.className = cellEl.className.replace(colTest, "");
  199.       if (j == col)
  200.         cellEl.className += " " + colClsNm;
  201.       cellEl.className = normalizeString(cellEl.className);
  202.     }
  203.   }

  204.   // Find the table header and highlight the column that was sorted.
  205.   var el = tblEl.parentNode.tHead;
  206.   rowEl = el.rows[el.rows.length - 1];
  207.   // Set style classes for each column as above.
  208.   for (i = 2; i < rowEl.cells.length; i++) {
  209.     cellEl = rowEl.cells[i];
  210.     cellEl.className = cellEl.className.replace(colTest, "");
  211.     // Highlight the header of the sorted column.
  212.     if (i == col)
  213.       cellEl.className += " " + colClsNm;
  214.       cellEl.className = normalizeString(cellEl.className);
  215.   }
  216. }

  217. function setRanks(tblEl, col, rev) {

  218.   // Determine whether to start at the top row of the table and go down or
  219.   // at the bottom row and work up. This is based on the current sort
  220.   // direction of the column and its reversed flag.

  221.   var i    = 0;
  222.   var incr = 1;
  223.   if (tblEl.reverseSort[col])
  224.     rev = !rev;
  225.   if (rev) {
  226.     incr = -1;
  227.     i = tblEl.rows.length - 1;
  228.   }

  229.   // Now go through each row in that direction and assign it a rank by
  230.   // counting 1, 2, 3...

  231.   var count   = 1;
  232.   var rank    = count;
  233.   var curVal;
  234.   var lastVal = null;

  235.   // Note that this loop is skipped if the table was sorted on the name
  236.   // column.
  237.   while (col > 1 && i >= 0 && i < tblEl.rows.length) {

  238.     // Get the value of the sort column in this row.
  239.     curVal = getTextValue(tblEl.rows[i].cells[col]);

  240.     // On rows after the first, compare the sort value of this row to the
  241.     // previous one. If they differ, update the rank to match the current row
  242.     // count. (If they are the same, this row will get the same rank as the
  243.     // previous one.)
  244.     if (lastVal != null && compareValues(curVal, lastVal) != 0)
  245.         rank = count;
  246.     // Set the rank for this row.
  247.     tblEl.rows[i].rank = rank;

  248.     // Save the sort value of the current row for the next time around and bump
  249.     // the row counter and index.
  250.     lastVal = curVal;
  251.     count++;
  252.     i += incr;
  253.   }

  254.   // Now go through each row (from top to bottom) and display its rank. Note
  255.   // that when two or more rows are tied, the rank is shown on the first of
  256.   // those rows only.

  257.   var rowEl, cellEl;
  258.   var lastRank = 0;

  259.   // Go through the rows from top to bottom.
  260.   for (i = 0; i < tblEl.rows.length; i++) {
  261.     rowEl = tblEl.rows[i];
  262.     cellEl = rowEl.cells[0];
  263.     // Delete anything currently in the rank column.
  264.     while (cellEl.lastChild != null)
  265.       cellEl.removeChild(cellEl.lastChild);
  266.     // If this row's rank is different from the previous one, Insert a new text
  267.     // node with that rank.
  268.     if (col > 1 && rowEl.rank != lastRank) {
  269.       cellEl.appendChild(document.createTextNode(rowEl.rank));
  270.       lastRank = rowEl.rank;
  271.     }
  272.   }
  273. }

  274. </SCRIPT>

  275. <META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
  276. <BODY>
  277. <P><!-- Defensive statistics table. -->
  278. <TABLE cellSpacing=0 cellPadding=0 border=0>
  279.   <THEAD>
  280.   <TR>
  281.     <TH class=mainHeader colSpan=11>NFL 2001 Defensive Stats</TH></TR>
  282.   <TR>
  283.     <TH style="TEXT-ALIGN: left">Rank</TH>
  284.     <TH style="TEXT-ALIGN: left"><A title="Team Name"
  285.       onclick="this.blur(); return sortTable('defTblBdy', 1, false);"
  286.       href="http://www.brainjar.com/dhtml/tablesort/">Team</A></TH>
  287.     <TH><SPAN title="Games Played">Gms</SPAN></TH>
  288.     <TH><A title="Total Yards Allowed"
  289.       onclick="this.blur(); return sortTable('defTblBdy',  3, false);"
  290.       href="http://www.brainjar.com/dhtml/tablesort/">Yds</A></TH>
  291.     <TH><A title="Yards Allowed Per Game"
  292.       onclick="this.blur(); return sortTable('defTblBdy',  4, false);"
  293.       href="http://www.brainjar.com/dhtml/tablesort/">Yds/G</A></TH>
  294.     <TH><A title="Total Rushing Yards Allowed"
  295.       onclick="this.blur(); return sortTable('defTblBdy',  5, false);"
  296.       href="http://www.brainjar.com/dhtml/tablesort/">RuYds</A></TH>
  297.     <TH><A title="Rushing Yards Allowed Per Game"
  298.       onclick="this.blur(); return sortTable('defTblBdy',  6, false);"
  299.       href="http://www.brainjar.com/dhtml/tablesort/">RuYds/G</A></TH>
  300.     <TH><A title="Total Passing Yards Allowed"
  301.       onclick="this.blur(); return sortTable('defTblBdy',  7, false);"
  302.       href="http://www.brainjar.com/dhtml/tablesort/">PaYds</A></TH>
  303.     <TH><A title="Passing Yards Allowed Per Game"
  304.       onclick="this.blur(); return sortTable('defTblBdy',  8, false);"
  305.       href="http://www.brainjar.com/dhtml/tablesort/">PaYds/G</A></TH>
  306.     <TH><A title="Total Points Allowed"
  307.       onclick="this.blur(); return sortTable('defTblBdy',  9, false);"
  308.       href="http://www.brainjar.com/dhtml/tablesort/">Pts</A></TH>
  309.     <TH><A title="Points Allowed Per Game"
  310.       onclick="this.blur(); return sortTable('defTblBdy', 10, false);"
  311.       href="http://www.brainjar.com/dhtml/tablesort/">Pts/G</A></TH></TR></THEAD>
  312.   <TBODY id=defTblBdy>
  313.   <TR class="">
  314.     <TD class=numeric></TD>
  315.     <TD class="">Arizona</TD>
  316.     <TD class=numeric>16</TD>
  317.     <TD class=numeric>5685</TD>
  318.     <TD class=numeric>355.3</TD>
  319.     <TD class=numeric>2087</TD>
  320.     <TD class=numeric>130.4</TD>
  321.     <TD class=numeric>3598</TD>
  322.     <TD class=numeric>224.9</TD>
  323.     <TD class=numeric>343</TD>
  324.     <TD class=numeric>21.4</TD></TR>
  325.   <TR class=alternateRow>
  326.     <TD class=numeric></TD>
  327.     <TD class="">Atlanta</TD>
  328.     <TD class=numeric>16</TD>
  329.     <TD class=numeric>5845</TD>
  330.     <TD class=numeric>365.3</TD>
  331.     <TD class=numeric>1943</TD>
  332.     <TD class=numeric>121.4</TD>
  333.     <TD class=numeric>3902</TD>
  334.     <TD class=numeric>243.9</TD>
  335.     <TD class=numeric>377</TD>
  336.     <TD class=numeric>23.6</TD></TR>
  337.   <TR class="">
  338.     <TD class=numeric></TD>
  339.     <TD class="">Baltimore</TD>
  340.     <TD class=numeric>16</TD>
  341.     <TD class=numeric>4267</TD>
  342.     <TD class=numeric>284.5</TD>
  343.     <TD class=numeric>1325</TD>
  344.     <TD class=numeric>88.3</TD>
  345.     <TD class=numeric>2942</TD>
  346.     <TD class=numeric>196.1</TD>
  347.     <TD class=numeric>262</TD>
  348.     <TD class=numeric>17.5</TD></TR>
  349.   <TR class=alternateRow>
  350.     <TD class=numeric></TD>
  351.     <TD class="">Buffalo</TD>
  352.     <TD class=numeric>16</TD>
  353.     <TD class=numeric>5292</TD>
  354.     <TD class=numeric>330.8</TD>
  355.     <TD class=numeric>2133</TD>
  356.     <TD class=numeric>133.3</TD>
  357.     <TD class=numeric>3159</TD>
  358.     <TD class=numeric>197.4</TD>
  359.     <TD class=numeric>420</TD>
  360.     <TD class=numeric>26.2</TD></TR>
  361.   <TR>
  362.     <TD class=numeric></TD>
  363.     <TD class="">Carolina</TD>
  364.     <TD class=numeric>16</TD>
  365.     <TD class=numeric>5943</TD>
  366.     <TD class=numeric>371.4</TD>
  367.     <TD class=numeric>2301</TD>
  368.     <TD class=numeric>143.8</TD>
  369.     <TD class=numeric>3642</TD>
  370.     <TD class=numeric>227.6</TD>
  371.     <TD class=numeric>410</TD>
  372.     <TD class=numeric>25.6</TD></TR>
  373.   <TR class=alternateRow>
  374.     <TD class=numeric></TD>
  375.     <TD class="">Chicago</TD>
  376.     <TD class=numeric>16</TD>
  377.     <TD class=numeric>4978</TD>
  378.     <TD class=numeric>311.1</TD>
  379.     <TD class=numeric>1313</TD>
  380.     <TD class=numeric>82.1</TD>
  381.     <TD class=numeric>3665</TD>
  382.     <TD class=numeric>229.1</TD>
  383.     <TD class=numeric>203</TD>
  384.     <TD class=numeric>12.7</TD></TR>
  385.   <TR>
  386.     <TD class=numeric></TD>
  387.     <TD class="">Cincinnati</TD>
  388.     <TD class=numeric>16</TD>
  389.     <TD class=numeric>4832</TD>
  390.     <TD class=numeric>302.0</TD>
  391.     <TD class=numeric>1675</TD>
  392.     <TD class=numeric>104.7</TD>
  393.     <TD class=numeric>3157</TD>
  394.     <TD class=numeric>197.3</TD>
  395.     <TD class=numeric>309</TD>
  396.     <TD class=numeric>19.3</TD></TR>
  397.   <TR class=alternateRow>
  398.     <TD class=numeric></TD>
  399.     <TD class="">Cleveland</TD>
  400.     <TD class=numeric>16</TD>
  401.     <TD class=numeric>5297</TD>
  402.     <TD class=numeric>331.1</TD>
  403.     <TD class=numeric>2208</TD>
  404.     <TD class=numeric>138.0</TD>
  405.     <TD class=numeric>3089</TD>
  406.     <TD class=numeric>193.1</TD>
  407.     <TD class=numeric>319</TD>
  408.     <TD class=numeric>19.9</TD></TR>
  409.   <TR>
  410.     <TD class=numeric></TD>
  411.     <TD class="">Dallas</TD>
  412.     <TD class=numeric>16</TD>
  413.     <TD class=numeric>4599</TD>
  414.     <TD class=numeric>287.4</TD>
  415.     <TD class=numeric>1710</TD>
  416.     <TD class=numeric>106.9</TD>
  417.     <TD class=numeric>2889</TD>
  418.     <TD class=numeric>180.6</TD>
  419.     <TD class=numeric>338</TD>
  420.     <TD class=numeric>21.1</TD></TR>
  421.   <TR class=alternateRow>
  422.     <TD class=numeric></TD>
  423.     <TD class="">Denver</TD>
  424.     <TD class=numeric>16</TD>
  425.     <TD class=numeric>4774</TD>
  426.     <TD class=numeric>298.4</TD>
  427.     <TD class=numeric>1492</TD>
  428.     <TD class=numeric>93.2</TD>
  429.     <TD class=numeric>3282</TD>
  430.     <TD class=numeric>205.1</TD>
  431.     <TD class=numeric>339</TD>
  432.     <TD class=numeric>21.2</TD></TR>
  433.   <TR>
  434.     <TD class=numeric></TD>
  435.     <TD class="">Detroit</TD>
  436.     <TD class=numeric>16</TD>
  437.     <TD class=numeric>5521</TD>
  438.     <TD class=numeric>345.1</TD>
  439.     <TD class=numeric>1993</TD>
  440.     <TD class=numeric>124.6</TD>
  441.     <TD class=numeric>3528</TD>
  442.     <TD class=numeric>220.5</TD>
  443.     <TD class=numeric>424</TD>
  444.     <TD class=numeric>26.5</TD></TR>
  445.   <TR class=alternateRow>
  446.     <TD class=numeric></TD>
  447.     <TD class="">Green Bay</TD>
  448.     <TD class=numeric>16</TD>
  449.     <TD class=numeric>4937</TD>
  450.     <TD class=numeric>308.6</TD>
  451.     <TD class=numeric>1769</TD>
  452.     <TD class=numeric>110.6</TD>
  453.     <TD class=numeric>3168</TD>
  454.     <TD class=numeric>198.0</TD>
  455.     <TD class=numeric>266</TD>
  456.     <TD class=numeric>16.6</TD></TR>
  457.   <TR>
  458.     <TD class=numeric></TD>
  459.     <TD class="">Indianapolis</TD>
  460.     <TD class=numeric>16</TD>
  461.     <TD class=numeric>5715</TD>
  462.     <TD class=numeric>357.2</TD>
  463.     <TD class=numeric>2115</TD>
  464.     <TD class=numeric>132.2</TD>
  465.     <TD class=numeric>3600</TD>
  466.     <TD class=numeric>225.0</TD>
  467.     <TD class=numeric>486</TD>
  468.     <TD class=numeric>30.4</TD></TR>
  469.   <TR class=alternateRow>
  470.     <TD class=numeric></TD>
  471.     <TD class="">Jacksonville</TD>
  472.     <TD class=numeric>16</TD>
  473.     <TD class=numeric>5070</TD>
  474.     <TD class=numeric>316.9</TD>
  475.     <TD class=numeric>1611</TD>
  476.     <TD class=numeric>100.7</TD>
  477.     <TD class=numeric>3459</TD>
  478.     <TD class=numeric>216.2</TD>
  479.     <TD class=numeric>286</TD>
  480.     <TD class=numeric>17.9</TD></TR>
  481.   <TR>
  482.     <TD class=numeric></TD>
  483.     <TD class="">Kansas City</TD>
  484.     <TD class=numeric>16</TD>
  485.     <TD class=numeric>5304</TD>
  486.     <TD class=numeric>331.5</TD>
  487.     <TD class=numeric>2140</TD>
  488.     <TD class=numeric>133.8</TD>
  489.     <TD class=numeric>3164</TD>
  490.     <TD class=numeric>197.8</TD>
  491.     <TD class=numeric>344</TD>
  492.     <TD class=numeric>21.5</TD></TR>
  493.   <TR class=alternateRow>
  494.     <TD class=numeric></TD>
  495.     <TD class="">Miami</TD>
  496.     <TD class=numeric>16</TD>
  497.     <TD class=numeric>4608</TD>
  498.     <TD class=numeric>288.0</TD>
  499.     <TD class=numeric>1779</TD>
  500.     <TD class=numeric>111.2</TD>
  501.     <TD class=numeric>2829</TD>
  502.     <TD class=numeric>176.8</TD>
  503.     <TD class=numeric>290</TD>
  504.     <TD class=numeric>18.1</TD></TR>
  505.   <TR>
  506.     <TD class=numeric></TD>
  507.     <TD class="">Minnesota</TD>
  508.     <TD class=numeric>16</TD>
  509.     <TD class=numeric>5315</TD>
  510.     <TD class=numeric>354.3</TD>
  511.     <TD class=numeric>2087</TD>
  512.     <TD class=numeric>139.1</TD>
  513.     <TD class=numeric>3228</TD>
  514.     <TD class=numeric>215.2</TD>
  515.     <TD class=numeric>371</TD>
  516.     <TD class=numeric>24.7</TD></TR>
  517.   <TR class=alternateRow>
  518.     <TD class=numeric></TD>
  519.     <TD class="">New England</TD>
  520.     <TD class=numeric>16</TD>
  521.     <TD class=numeric>5352</TD>
  522.     <TD class=numeric>334.5</TD>
  523.     <TD class=numeric>1855</TD>
  524.     <TD class=numeric>115.9</TD>
  525.     <TD class=numeric>3497</TD>
  526.     <TD class=numeric>218.6</TD>
  527.     <TD class=numeric>272</TD>
  528.     <TD class=numeric>17.0</TD></TR>
  529.   <TR>
  530.     <TD class=numeric></TD>
  531.     <TD class="">New Orleans</TD>
  532.     <TD class=numeric>16</TD>
  533.     <TD class=numeric>5070</TD>
  534.     <TD class=numeric>316.9</TD>
  535.     <TD class=numeric>1715</TD>
  536.     <TD class=numeric>107.2</TD>
  537.     <TD class=numeric>3355</TD>
  538.     <TD class=numeric>209.7</TD>
  539.     <TD class=numeric>409</TD>
  540.     <TD class=numeric>25.6</TD></TR>
  541. </TBODY></TABLE>
  542. </P></BODY></HTML>

复制代码

[ 本贴由 卫星星 于 2003-3-18 11:37 最后编辑 ]
 楼主| 发表于 2003-3-15 20:59:41 | 显示全部楼层
光标定位等等……TextRange的操作

  1. <html>

  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  4. <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
  5. <meta name="ProgId" content="FrontPage.Editor.Document">
  6. <title>光标位置</title>
  7. <style>
  8. INPUT{border: 1 solid #000000}
  9. BODY,TABLE{font-size: 10pt}
  10. </style>
  11. </head>

  12. <body>


  13. <table border="0" width="700" cellspacing="0" cellpadding="0">
  14.   <tr>
  15.     <td width="479" rowspan="7">
  16. 点击 TextArea 实现光标定位                                    
  17.                                     
  18. <p>                                    
  19. <textarea rows="7" cols="49" id="box" onclick=tellPoint()>我怕来不及我要抱着你,直到感觉你的绉纹有了岁月的痕迹,直到视线变得模糊直到不能呼吸
  20. 为了你我愿意
  21. 动也不能动也要看着你,直到感觉你的发线有了白雪的痕迹,直到肯定你是真的直到失去力气让我们形影不离
  22. 如果全世界我也可以放弃,至少还有你值得我去珍惜而你在这里就是生命的奇迹
  23. 也许全世界我也可以忘记,就是不愿意失去你的消息你掌心的痣我总记得在哪里
  24. 我们好不容易我们身不由已,我怕时间太快不够将你看仔细,我怕时间太慢日夜担心失去你恨不得一夜之间白头永不分离
  25. </textarea>      
  26.      
  27. <script>     
  28.      
  29. function movePoint()     
  30. {     
  31.         var pn = parseInt(pnum.value);     
  32.              
  33.         if(isNaN(pn))     
  34.                 return;     
  35.              
  36.         var rng = box.createTextRange();
  37.                      
  38.         rng.moveStart("character",pn);     
  39.              
  40.         rng.collapse(true);             
  41.              
  42.         rng.select();     
  43.              
  44.         returnCase(rng)             
  45.                      
  46. }     
  47.      
  48. function tellPoint()     
  49. {     
  50.         var rng = event.srcElement.createTextRange();       
  51.      
  52.         rng.moveToPoint(event.x,event.y);             
  53.         rng.moveStart("character",-event.srcElement.value.length)             
  54.              
  55.         pnum.value = rng.text.length     
  56.              
  57.         returnCase(rng)     
  58. }     
  59.      
  60.      
  61. function returnCase(rng)     
  62. {     
  63.         bh.innerText = rng.boundingHeight;     
  64.         bl.innerText = rng.boundingLeft;     
  65.         bt.innerText = rng.boundingTop;     
  66.         bw.innerText = rng.boundingWidth;     
  67.         ot.innerText = rng.offsetTop;     
  68.         ol.innerText = rng.offsetLeft;     
  69.         t.innerText  = rng.text;     
  70. }     
  71.      
  72.      
  73. function selectText(sp,ep)     
  74. {     
  75.         sp = parseInt(sp)     
  76.         ep = parseInt(ep)     
  77.              
  78.         if(isNaN(sp)||isNaN(ep))     
  79.                 return;     
  80.                      
  81.         var rng = box.createTextRange();     
  82.              
  83.         rng.moveEnd("character",-box.value.length)     
  84.         rng.moveStart("character",-box.value.length)     
  85.              
  86.         rng.collapse(true);     
  87.              
  88.         rng.moveEnd("character",ep)     
  89.         rng.moveStart("character",sp)     
  90.              
  91.         rng.select();     
  92.              
  93.         returnCase(rng);     
  94. }     

  95. var rg = box.createTextRange();
  96.      
  97. function findText(tw)     
  98. {     
  99.         if(tw=="")     
  100.                 return;        
  101.              
  102.         var sw = 0;     
  103.              
  104.         if(document.selection)     
  105.         {     
  106.                 sw = document.selection.createRange().text.length;     
  107.         }             
  108.              
  109.         rg.moveEnd("character",box.value.length);     
  110.              
  111.         rg.moveStart("character",sw);     

  112.                              
  113.         if(rg.findText(tw))             
  114.         {     
  115.                 rg.select();

  116.                 returnCase(rg);          
  117.         }       
  118.        
  119.         if(rg.text!=tw)
  120.         {
  121.                 alert("已经搜索完了")
  122.                 rg = box.createTextRange()
  123.         }
  124.                      
  125. }     
  126.      
  127. </script>                                 
  128. </p>                                    
  129. <p></p>                                    
  130. 光标位置:<input type="text" value="0" id="pnum" size="8"> <input type="button" onclick="movePoint()" value="移动光标到指定位置">                                 
  131. <p></p>                              
  132. 选择指定范围:<input type="text" size="9" id="sbox"> -- <input type="text" size="9" id="ebox"> <input type="button" onclick="selectText(sbox.value,ebox.value)" value="选择">                                
  133. <p></p>                    
  134. 选择查找字符 :<input type="text" value="" id="cbox" size="8"> <input type="button" onclick="findText(cbox.value)" value="查找下一个并选择">                                 
  135.                     
  136.     </td>                              
  137.     <td width="217">boundingHeight:&nbsp;<span id="bh"></span></td>                              
  138.   </tr>                              
  139.   <tr>                              
  140.     <td width="217">boundingWidth:&nbsp;<span id="bw"></span></td>                              
  141.   </tr>                              
  142.   <tr>                              
  143.     <td width="217">boundingTop:&nbsp;<span id="bt"></span></td>                              
  144.   </tr>                              
  145.   <tr>                              
  146.     <td width="217">boundingLeft:&nbsp;<span id="bl"></span></td>                              
  147.   </tr>                              
  148.   <tr>                              
  149.     <td width="217">offsetLeft:&nbsp;<span id="ol"></span> </td>                              
  150.   </tr>                              
  151.   <tr>                              
  152.     <td width="217">offsetTop:&nbsp;<span id="ot"></span> </td>                              
  153.   </tr>                              
  154.   <tr>                              
  155.     <td width="217">text:&nbsp;<span style="position: absolute; z-index: 10" id="t"></span> </td>                              
  156.   </tr>                              
  157. </table>                              
  158. </body>                                    
  159.                                     
  160. </html>                                    

复制代码
 楼主| 发表于 2003-3-15 21:01:57 | 显示全部楼层
用按纽让层移动

  1. <html>
  2. <head>
  3. <title>无标题文档</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  5. </head>

  6. <body topmargin="0" leftmargin="0" bgcolor="#FFFFFF" onclick="menuHide();">
  7. <script>
  8. document.onmousewheel=function()
  9. {
  10.         status=event.wheelDelta;
  11. }
  12. </script>
  13. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  14. <style>
  15. <!--
  16. .menuover    { background-color: #FFeeee; border: 1px solid #FF0000; cursor: hand; }
  17. .menuout     { cursor: hand; }
  18. td,a         { color: #ff0000; font-size: 12px; font-family: 宋体; text-decoration: none }
  19. -->
  20. </style>
  21. <script language=javascript>
  22. var run=0;
  23. var show=0;
  24. function menuRow()
  25. {
  26.   show=1;
  27.   run=1;
  28.   menu.style.pixelTop-=5;
  29.   if(menu.style.pixelTop>0)
  30.         setTimeout('menuRow();','5');
  31.   else
  32.     run=0;
  33. }
  34. function menuShow()
  35. {
  36.   if(!run&&!show)
  37.   {
  38.     menu.style.visibility='visible';
  39.         menup.style.visibility='visible';
  40.     menu.style.pixelTop=200;
  41.     menuRow();
  42.   }
  43. }
  44. function menuHide()
  45. {
  46.   if(!run&&show)
  47.   {
  48.     menu.style.visibility='hidden';
  49.         menup.style.visibility='hidden';
  50.         show=0;
  51.   }
  52. }
  53. </script>



  54.           <div style="overflow: hidden; left=404px; top:30px; height:200px; visibility:show;

  55. width:97px; z-index:1; position:absolute; visibility:hidden; border-left: 0px; border-right: 0px;

  56. border-top: 0px solid; border-bottom: 1px solid #FF0000; " id=menup>
  57.         <div bgcolor="#FFFFFF" id=menu align=center style="position: absolute; width: 97px; height:

  58. 200px; z-index: 1; left: 0px; top: 200px; overflow: hidden; visibility: hidden; background-image:

  59. url('images/menu_bg.gif'); border: 1 solid #FF0000">
  60.           <table width=93 cellpadding="0" cellspacing="4" style="position: relative; top: 1">
  61.             <tr>
  62.               <td valign="middle" align="center" height="20" class=menuout

  63. onmouseover=this.className='menuover'; onmouseout=this.className='menuout';

  64. onclick="location='aboutus'">关 于 我 们</td>
  65.             </tr>
  66.             <tr>
  67.               <td valign="middle" align="center" height="20" class=menuout

  68. onmouseover=this.className='menuover'; onmouseout=this.className='menuout';

  69. onclick="location='joinus'">加 入 我 们</td>
  70.             </tr>
  71.             <tr>
  72.               <td valign="middle" align="center" height="20" class=menuout

  73. onmouseover=this.className='menuover'; onmouseout=this.className='menuout';

  74. onclick="location='market'">交 易 市 场</td>
  75.             </tr>
  76.             <tr>
  77.               <td valign="middle" align="center" height="20" class=menuout

  78. onmouseover=this.className='menuover'; onmouseout=this.className='menuout';

  79. onclick="location='super'">网 页 超 市</td>
  80.             </tr>
  81.             <tr>
  82.               <td valign="middle" align="center" height="20" class=menuout

  83. onmouseover=this.className='menuover'; onmouseout=this.className='menuout';

  84. onclick="location='domain'">域 名 注 册</td>
  85.             </tr>
  86.             <tr>
  87.               <td valign="middle" align="center" height="20" class=menuout

  88. onmouseover=this.className='menuover'; onmouseout=this.className='menuout';

  89. onclick="location='host'">虚 拟 主 机</td>
  90.             </tr>
  91.                         <tr>
  92.               <td valign="middle" align="center" height="20" class=menuout

  93. onmouseover=this.className='menuover'; onmouseout=this.className='menuout';

  94. onclick="location='service'">服 务 中 心</td>
  95.             </tr>
  96.             <tr>
  97.               <td valign="middle" align="center" height="20" class=menuout

  98. onmouseover=this.className='menuover'; onmouseout=this.className='menuout';

  99. onclick="location='cooperator'">合 作 伙 伴</td>
  100.             </tr>
  101.           </table>
  102.         </div>
  103.           </div>
  104. <a onclick="menuShow();" style="position: absolute; width: 97px; height: 200px; z-index: 1; left:

  105. 410px; top: 230px;cursor:hand; " alt=Menu>123</a>

  106. </body>
  107. </html>

复制代码
 楼主| 发表于 2003-3-15 21:02:30 | 显示全部楼层
24点(多个结果)


  1. <html>

  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  4. <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
  5. <meta name="ProgId" content="FrontPage.Editor.Document">
  6. <title>24</title>
  7. <style>
  8.         INPUT,TEXTAREA{border: 1 solid #0099CC;}
  9. </style>
  10. </head>

  11. <body link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
  12. <script>
  13. /*-------------------------------------
  14. 原理阐述:

  15. 四个数字,判断怎样得到 24 可能而且没有重复的组合方式如下:

  16. 可能的组合方式
  17.         a+b+c+d
  18.         a+(b+c)+d
  19.         (a+b)+c+d
  20.         a+b+(c+d)
  21.         a+(b+c+d)
  22.         (a+b+c)+d
  23.         (a+b)+(c+d)
  24.         (a+(b+c))+d
  25.         ((a+b)+c)+d
  26.         a+(b+(c+d))
  27.         a+((b+c)+d)               

  28. 依据这个规律,我们可以得出…… 下面这段代码~~ 哈哈……

  29. ---------------------------------------*/
  30.         var num = null;
  31.        
  32.         var sign = new Array("+","-","*","/");
  33.        
  34. function returnSZ()
  35. {
  36.         var allstr = "";
  37.        
  38.         for(s1=0; s1<4; s1++)
  39.         {
  40.                 for(s2=0; s2<4; s2++)
  41.                 {
  42.                         for(s3=0; s3<4; s3++)
  43.                         {                                       
  44.                                 for(n1=0; n1<4; n1++)
  45.                                 {                                       
  46.                                         for(n2=0; n2<4; n2++)
  47.                                         {
  48.                                                 if(n2==n1)
  49.                                                         continue;       
  50.                                                
  51.                                                 for(n3=0; n3<4; n3++)
  52.                                                 {
  53.                                                         if(n3==n1||n3==n2)
  54.                                                                 continue;                                                       
  55.                                                                
  56.                                                         for(n4=0; n4<4; n4++)
  57.                                                         {
  58.                                                                 if(n4==n1||n4==n2||n4==n3)
  59.                                                                         continue;
  60.                                                                                                                                        
  61.                                                                 var str = "";
  62.                                                                
  63.                                                                 /*--------------------- 可能的组合方式
  64.                                                                 a+b+c+d
  65.                                                                 a+(b+c)+d
  66.                                                                 (a+b)+c+d
  67.                                                                 a+b+(c+d)
  68.                                                                 a+(b+c+d)
  69.                                                                 (a+b+c)+d
  70.                                                                 (a+b)+(c+d)
  71.                                                                 (a+(b+c))+d
  72.                                                                 ((a+b)+c)+d
  73.                                                                 a+(b+(c+d))
  74.                                                                 a+((b+c)+d)                                                               
  75.                                                                 ----------------------*/
  76.                                                                                                                                
  77.                                                                 str = num[n1]+  sign[s1]  +num[n2]+  sign[s2]  +num[n3]+  sign[s3]  +num[n4];
  78.                                                                 if(judgeNum(str))
  79.                                                                 {                                               
  80.                                                                         allstr +=(str)+"\n";
  81.                                                                 }
  82.                                                                 str = num[n1]+  sign[s1]  +"("+num[n2]+  sign[s2]  +num[n3]+")"+  sign[s3]  +num[n4];
  83.                                                                 if(judgeNum(str))
  84.                                                                 {                                       
  85.                                                                         allstr +=(str)+"\n";
  86.                                                                 }                                                               
  87.                                                                 str = "("+num[n1]+  sign[s1]  +num[n2]+")"+  sign[s2]  +num[n3]+  sign[s3]  +num[n4];
  88.                                                                 if(judgeNum(str))
  89.                                                                 {
  90.                                                                         allstr +=(str)+"\n";
  91.                                                                 }                                                               
  92.                                                                 str = num[n1]+  sign[s1]  +num[n2]+  sign[s2]  +"("+num[n3]+  sign[s3]  +num[n4]+")";
  93.                                                                 if(judgeNum(str))
  94.                                                                 {
  95.                                                                         allstr +=(str)+"\n";
  96.                                                                 }
  97.                                                                 str = num[n1]+  sign[s1]  +"("+num[n2]+  sign[s2]  +num[n3]+  sign[s3]  +num[n4]+")";
  98.                                                                 if(judgeNum(str))
  99.                                                                 {
  100.                                                                         allstr +=(str)+"\n";
  101.                                                                 }
  102.                                                                 str = "("+num[n1]+  sign[s1]  +num[n2]+  sign[s2]  +num[n3]+")"+  sign[s3]        +num[n4];                                                       
  103.                                                                 if(judgeNum(str))
  104.                                                                 {
  105.                                                                         allstr +=(str)+"\n";
  106.                                                                 }                                                               
  107.                                                                 str = "("+num[n1]+  sign[s1]  +num[n2]+")"+ sign[s2]  +"("+num[n3]+  sign[s3]  +num[n4]+")";
  108.                                                                 if(judgeNum(str))
  109.                                                                 {
  110.                                                                         allstr +=(str)+"\n";
  111.                                                                 }                                                                                                                       
  112.                                                                 str = "("+num[n1]+  sign[s1]  +"("+num[n2]+  sign[s2]  +num[n3]+"))"+  sign[s3]  +num[n4];
  113.                                                                 if(judgeNum(str))
  114.                                                                 {
  115.                                                                         allstr +=(str)+"\n";
  116.                                                                 }                                                               
  117.                                                                 str = "(("+num[n1]+  sign[s1]  +num[n2]+")"+ sign[s2]  +num[n3]+")"+  sign[s3]  +num[n4];
  118.                                                                 if(judgeNum(str))
  119.                                                                 {
  120.                                                                         allstr +=(str)+"\n";
  121.                                                                 }                                                               
  122.                                                                 str = num[n1]+  sign[s1]  +"("+num[n2]+  sign[s2]  +"("+num[n3]+  sign[s3]  +num[n4]+"))";
  123.                                                                 if(judgeNum(str))
  124.                                                                 {
  125.                                                                         allstr +=(str)+"\n";
  126.                                                                 }                                                               
  127.                                                                 str = num[n1]+  sign[s1]  +"(("+num[n2]+  sign[s2]  +num[n3]+")"+  sign[s3]   +num[n4]+")";       
  128.                                                                 if(judgeNum(str))
  129.                                                                 {
  130.                                                                         allstr +=(str)+"\n";
  131.                                                                 }       
  132.                                                                                
  133.                                                                                                                                                
  134.                                                         }                                                                       
  135.                                                        
  136.                                                 }                                                                       
  137.                                                        
  138.                                         }
  139.                                 }
  140.                         }
  141.                 }
  142.         }
  143.        
  144.         if(allstr!="")
  145.                 result.value = allstr;
  146.         else       
  147.                 result.value=("这个好像不行吧~~~~");
  148. }       


  149. function judgeNum(theline)
  150. {
  151.         if(eval(theline)==24)
  152.                 return true;
  153.         else
  154.                 return false;       
  155. }

  156. function RunSZ()
  157. {
  158.         var ArrayBox = document.getElementsByName("box");
  159.        
  160.         num = null;
  161.        
  162.         num = new Array();
  163.        
  164.         for(i=0;i<4;i++)
  165.         {
  166.                 var str = ArrayBox[i].value;
  167.                
  168.                 if(str=="")
  169.                 {
  170.                         alert("第"+(i+1)+"个数字没有填");
  171.                         ArrayBox[i].focus();
  172.                         return;
  173.                 }
  174.                 else
  175.                 {
  176.                         if(!str.match(/\D/g))                       
  177.                                 num[i] = ArrayBox[i].value;
  178.                         else
  179.                         {
  180.                                 alert("第"+(i+1)+"个数字有不为数字的字符");
  181.                                 ArrayBox[i].focus();
  182.                                 return;                                       
  183.                         }       
  184.                 }
  185.         }
  186.        
  187.        
  188.         returnSZ();
  189.        
  190. }

  191. </script>       
  192. <div align="center">
  193.   <table border="0" width="324" style="font-family: 宋体; font-size: 9pt; border: 1 solid #0099CC" height="200" cellspacing="0" cellpadding="0">
  194.     <tr>
  195.       <td width="308" height="28" align="center" bgcolor="#0099CC" style="color: #FFFFFF" colspan="2">
  196.         <p align="left">|| 24 点 游戏</td>
  197.     </tr>
  198.   <center>
  199.     <tr>
  200.       <td width="82" height="40" align="center" bgcolor="#0099CC" style="color: #FFFFFF; border-top: 1 solid #DDFFEF">第一个数字</td>
  201.       <td width="226" height="40" align="center" bgcolor="#DDFFEF"><input type="text" name="box" size="20" ></td>
  202.     </tr>
  203.     <tr>
  204.       <td width="82" height="40" align="center" bgcolor="#0099CC" style="color: #FFFFFF">第一个数字</td>
  205.       <td width="226" height="40" align="center" bgcolor="#DDFFEF"><input type="text" name="box" size="20"></td>
  206.     </tr>
  207.     <tr>
  208.       <td width="82" height="40" align="center" bgcolor="#0099CC" style="color: #FFFFFF">第三个数字</td>
  209.       <td width="226" height="40" align="center" bgcolor="#DDFFEF"><input type="text" name="box" size="20"></td>
  210.     </tr>
  211.     <tr>
  212.       <td width="82" height="40" align="center" bgcolor="#0099CC" style="color: #FFFFFF; border-bottom: 1 solid #DDFFEF">第四个数字</td>
  213.       <td width="226" height="40" align="center" bgcolor="#DDFFEF"><input type="text" name="box" size="20"></td>
  214.     </tr>
  215.     <tr>
  216.       <td width="82" height="68" align="center" bgcolor="#0099CC" style="color: #FFFFFF"><a href="javascript:;" onclick=RunSZ()>计算结果</a></td>
  217.       <td width="226" height="68" align="center" bgcolor="#0099CC"><br>
  218.         <textarea id="result" rows="4" cols="29"></textarea><br>
  219.         <br>
  220.       </td>
  221.     </tr>
  222.   </table>
  223.   </center>
  224. </div>
  225. </body>

  226. </html>


复制代码
 楼主| 发表于 2003-3-15 21:03:05 | 显示全部楼层
24点(单个结果)

  1. <html>

  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  4. <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
  5. <meta name="ProgId" content="FrontPage.Editor.Document">
  6. <title>24</title>
  7. <style>
  8.         INPUT{border: 1 solid #0099CC;}
  9. </style>
  10. </head>

  11. <body link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
  12. <script>
  13. /*-------------------------------------
  14. 原理阐述:

  15. 四个数字,判断怎样得到 24 可能而且没有重复的组合方式如下:

  16. 可能的组合方式
  17.         a+b+c+d
  18.         a+(b+c)+d
  19.         (a+b)+c+d
  20.         a+b+(c+d)
  21.         a+(b+c+d)
  22.         (a+b+c)+d
  23.         (a+b)+(c+d)
  24.         (a+(b+c))+d
  25.         ((a+b)+c)+d
  26.         a+(b+(c+d))
  27.         a+((b+c)+d)               

  28. 依据这个规律,我们可以得出…… 下面这段代码~~ 哈哈……

  29. ---------------------------------------*/
  30.         var num = null;
  31.        
  32.         var sign = new Array("+","-","*","/");
  33.        
  34. function returnSZ()
  35. {
  36.         var allstr = "";
  37.        
  38.         for(s1=0; s1<4; s1++)
  39.         {
  40.                 for(s2=0; s2<4; s2++)
  41.                 {
  42.                         for(s3=0; s3<4; s3++)
  43.                         {                                       
  44.                                 for(n1=0; n1<4; n1++)
  45.                                 {                                       
  46.                                         for(n2=0; n2<4; n2++)
  47.                                         {
  48.                                                 if(n2==n1)
  49.                                                         continue;       
  50.                                                
  51.                                                 for(n3=0; n3<4; n3++)
  52.                                                 {
  53.                                                         if(n3==n1||n3==n2)
  54.                                                                 continue;                                                       
  55.                                                                
  56.                                                         for(n4=0; n4<4; n4++)
  57.                                                         {
  58.                                                                 if(n4==n1||n4==n2||n4==n3)
  59.                                                                         continue;
  60.                                                                                                                                        
  61.                                                                 var str = "";
  62.                                                                
  63.                                                                 /*--------------------- 可能的组合方式
  64.                                                                 a+b+c+d
  65.                                                                 a+(b+c)+d
  66.                                                                 (a+b)+c+d
  67.                                                                 a+b+(c+d)
  68.                                                                 a+(b+c+d)
  69.                                                                 (a+b+c)+d
  70.                                                                 (a+b)+(c+d)
  71.                                                                 (a+(b+c))+d
  72.                                                                 ((a+b)+c)+d
  73.                                                                 a+(b+(c+d))
  74.                                                                 a+((b+c)+d)                                                               
  75.                                                                 ----------------------*/
  76.                                                                                                                                
  77.                                                                 str = num[n1]+  sign[s1]  +num[n2]+  sign[s2]  +num[n3]+  sign[s3]  +num[n4];
  78.                                                                 if(judgeNum(str))
  79.                                                                 {                                               
  80.                                                                         result.value=(str);
  81.                                                                         return;
  82.                                                                 }
  83.                                                                 str = num[n1]+  sign[s1]  +"("+num[n2]+  sign[s2]  +num[n3]+")"+  sign[s3]  +num[n4];
  84.                                                                 if(judgeNum(str))
  85.                                                                 {                                       
  86.                                                                         result.value=(str);
  87.                                                                         return;
  88.                                                                 }                                                               
  89.                                                                 str = "("+num[n1]+  sign[s1]  +num[n2]+")"+  sign[s2]  +num[n3]+  sign[s3]  +num[n4];
  90.                                                                 if(judgeNum(str))
  91.                                                                 {
  92.                                                                         result.value=(str);
  93.                                                                         return;
  94.                                                                 }                                                               
  95.                                                                 str = num[n1]+  sign[s1]  +num[n2]+  sign[s2]  +"("+num[n3]+  sign[s3]  +num[n4]+")";
  96.                                                                 if(judgeNum(str))
  97.                                                                 {
  98.                                                                         result.value=(str);
  99.                                                                         return;
  100.                                                                 }
  101.                                                                 str = num[n1]+  sign[s1]  +"("+num[n2]+  sign[s2]  +num[n3]+  sign[s3]  +num[n4]+")";
  102.                                                                 if(judgeNum(str))
  103.                                                                 {
  104.                                                                         result.value=(str);
  105.                                                                         return;
  106.                                                                 }
  107.                                                                 str = "("+num[n1]+  sign[s1]  +num[n2]+  sign[s2]  +num[n3]+")"+  sign[s3]        +num[n4];                                                       
  108.                                                                 if(judgeNum(str))
  109.                                                                 {
  110.                                                                         result.value=(str);
  111.                                                                         return;
  112.                                                                 }                                                               
  113.                                                                 str = "("+num[n1]+  sign[s1]  +num[n2]+")"+ sign[s2]  +"("+num[n3]+  sign[s3]  +num[n4]+")";
  114.                                                                 if(judgeNum(str))
  115.                                                                 {
  116.                                                                         result.value=(str);
  117.                                                                         return;
  118.                                                                 }                                                                                                                       
  119.                                                                 str = "("+num[n1]+  sign[s1]  +"("+num[n2]+  sign[s2]  +num[n3]+"))"+  sign[s3]  +num[n4];
  120.                                                                 if(judgeNum(str))
  121.                                                                 {
  122.                                                                         result.value=(str);
  123.                                                                         return;
  124.                                                                 }                                                               
  125.                                                                 str = "(("+num[n1]+  sign[s1]  +num[n2]+")"+ sign[s2]  +num[n3]+")"+  sign[s3]  +num[n4];
  126.                                                                 if(judgeNum(str))
  127.                                                                 {
  128.                                                                         result.value=(str);
  129.                                                                         return;
  130.                                                                 }                                                               
  131.                                                                 str = num[n1]+  sign[s1]  +"("+num[n2]+  sign[s2]  +"("+num[n3]+  sign[s3]  +num[n4]+"))";
  132.                                                                 if(judgeNum(str))
  133.                                                                 {
  134.                                                                         result.value=(str);
  135.                                                                         return;
  136.                                                                 }                                                               
  137.                                                                 str = num[n1]+  sign[s1]  +"(("+num[n2]+  sign[s2]  +num[n3]+")"+  sign[s3]   +num[n4]+")";       
  138.                                                                 if(judgeNum(str))
  139.                                                                 {
  140.                                                                         result.value=(str);
  141.                                                                         return;
  142.                                                                 }       
  143.                                                                                
  144.                                                                                                                                                
  145.                                                         }                                                                       
  146.                                                        
  147.                                                 }                                                                       
  148.                                                        
  149.                                         }
  150.                                 }
  151.                         }
  152.                 }
  153.         }
  154.        
  155.         result.value=("这个好像不行吧~~~~");
  156. }       


  157. function judgeNum(theline)
  158. {
  159.         if(eval(theline)==24)
  160.                 return true;
  161.         else
  162.                 return false;       
  163. }

  164. function RunSZ()
  165. {
  166.         var ArrayBox = document.getElementsByName("box");
  167.        
  168.         num = null;
  169.        
  170.         num = new Array();
  171.        
  172.         for(i=0;i<4;i++)
  173.         {
  174.                 var str = ArrayBox[i].value;
  175.                
  176.                 if(str=="")
  177.                 {
  178.                         alert("第"+(i+1)+"个数字没有填");
  179.                         ArrayBox[i].focus();
  180.                         return;
  181.                 }
  182.                 else
  183.                 {
  184.                         if(!str.match(/\D/g))                       
  185.                                 num[i] = ArrayBox[i].value;
  186.                         else
  187.                         {
  188.                                 alert("第"+(i+1)+"个数字有不为数字的字符");
  189.                                 ArrayBox[i].focus();
  190.                                 return;                                       
  191.                         }       
  192.                 }
  193.         }
  194.        
  195.        
  196.         returnSZ();
  197.        
  198. }

  199. </script>       
  200. <div align="center">
  201.   <table border="0" width="324" style="font-family: 宋体; font-size: 9pt; border: 1 solid #0099CC" height="200" cellspacing="0" cellpadding="0">
  202.     <tr>
  203.       <td width="308" height="28" align="center" bgcolor="#0099CC" style="color: #FFFFFF" colspan="2">
  204.         <p align="left">|| 24 点 游戏</td>
  205.     </tr>
  206.   <center>
  207.     <tr>
  208.       <td width="82" height="40" align="center" bgcolor="#0099CC" style="color: #FFFFFF; border-top: 1 solid #DDFFEF">第一个数字</td>
  209.       <td width="226" height="40" align="center" bgcolor="#DDFFEF"><input type="text" name="box" size="20" ></td>
  210.     </tr>
  211.     <tr>
  212.       <td width="82" height="40" align="center" bgcolor="#0099CC" style="color: #FFFFFF">第一个数字</td>
  213.       <td width="226" height="40" align="center" bgcolor="#DDFFEF"><input type="text" name="box" size="20"></td>
  214.     </tr>
  215.     <tr>
  216.       <td width="82" height="40" align="center" bgcolor="#0099CC" style="color: #FFFFFF">第三个数字</td>
  217.       <td width="226" height="40" align="center" bgcolor="#DDFFEF"><input type="text" name="box" size="20"></td>
  218.     </tr>
  219.     <tr>
  220.       <td width="82" height="40" align="center" bgcolor="#0099CC" style="color: #FFFFFF; border-bottom: 1 solid #DDFFEF">第四个数字</td>
  221.       <td width="226" height="40" align="center" bgcolor="#DDFFEF"><input type="text" name="box" size="20"></td>
  222.     </tr>
  223.     <tr>
  224.       <td width="82" height="68" align="center" bgcolor="#0099CC" style="color: #FFFFFF"><a href="javascript:;" onclick=RunSZ()>计算结果</a></td>
  225.       <td width="226" height="68" align="center" bgcolor="#0099CC"><br>
  226.         <input type="text" id="result" value="">
  227.       </td>
  228.     </tr>
  229.   </table>
  230.   </center>
  231. </div>
  232. </body>

  233. </html>



复制代码
 楼主| 发表于 2003-3-15 21:04:16 | 显示全部楼层
包含另外一个页面

  1. <object height=400 width=600 type="text/x-scriptlet" data="http://www.dulishi.net/dulishi2001/main/default.asp">

复制代码
 楼主| 发表于 2003-3-15 21:05:31 | 显示全部楼层
弹出式帮助


  1. <!--
  2. /************************************************************************************
  3. ***                                                                                                ***
  4. ***        作者:wingfancy                                                                        ***
  5. ***        邮箱:wingfancy@webtsp.net                                                                ***
  6. ***        网址:http://www.5meng.com   ☆{吾梦→网络编程技术站}☆                                ***
  7. ***        OICQ:54810177 (欢迎共同探讨网络编程技术)                                                ***
  8. ***                                                                                                ***
  9. ***        代码说明:弹出式帮助。                                                                                ***
  10. ***                                                                                                ***
  11. *************************************************************************************/
  12. -->



  13. <OBJECT
  14. id=pophelp
  15. type="application/x-oleobject"
  16. classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"
  17. >
  18. <PARAM name="Command" value="HH Version">
  19. </OBJECT>

  20. <script language=javascript>
  21. popstyle= "Verdana,10,,";//弹出式帮助字体设定

  22. function showPophelp(helpstr,w,h,Foreground,Background){
  23. if (body.style.cursor=='help')
  24. pophelp.TextPopup(helpstr,popstyle,w,h,Foreground,Background);
  25. }

  26. document.onclick=resetCursor
  27. function resetCursor(){
  28. if (!(event.srcElement.innerText=="?"))
  29. body.style.cursor='default';
  30. }
  31. </script>


  32. <body id=body style="cursor:default;">

  33. <span onclick="javascript:body.style.cursor='help';" style="cursor:help;"><big><b>?</b></big></span>(说明:先点击前面"?"符号,当鼠标样式变为"求助"时,点击下面文字。)<br>

  34. <br>
  35. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span onclick="showPophelp('这是弹出式帮助',20,20,0,255)">弹出式帮助</span><br><br>

  36. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span onclick="showPophelp('我是wingfancy,欢迎大家一起讨论网络编程技术。',20,120,0,0)">wingfancy</span><br><br>

  37. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span onclick="showPophelp('wingfancy@webtsp.net',20,20,0,0)">电子信箱</span><br><br>

  38. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span onclick="showPophelp('http://www.5meng.com',20,20,0,0)">网址</span><br><br>


  39. </body>
复制代码
 楼主| 发表于 2003-3-15 21:06:51 | 显示全部楼层
XP 风格的右键菜单

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML><HEAD><TITLE>mouse-menu</TITLE>
  3. <META content="text/html; charset=gb2312" http-equiv=Content-Type>
  4. <META content="MSHTML 5.00.2614.3500" name=GENERATOR>
  5. <META content=FrontPage.Editor.Document name=ProgId>
  6. <STYLE>.menutable {
  7.         BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #307ce8 1px solid; BORDER-LEFT: #307ce8 5px solid; BORDER-RIGHT: #307ce8 1px solid; BORDER-TOP: #94bcf3 1px solid; FONT-SIZE: 12px; POSITION: absolute; Z-INDEX: 100
  8. }
  9. .menutrin {
  10.         BACKGROUND-COLOR: #1a71e6; COLOR: #ffffff; CURSOR: hand
  11. }
  12. .menutrout {
  13.         COLOR: #000000; CURSOR: hand
  14. }
  15. .menutd0 {
  16.         HEIGHT: 25px; TEXT-ALIGN: center; WIDTH: 28px; 改变这个修改菜单高度--->:
  17. }
  18. .menutd1 {
  19.         FONT-FAMILY: Webdings; TEXT-ALIGN: right; WIDTH: 46px
  20. }
  21. .linktd1 {
  22.         WIDTH: 46px
  23. }
  24. .menutd2 {
  25.         WIDTH: 4px
  26. }
  27. .menuhr {
  28.         BORDER-BOTTOM: #307ce8 1px inset; BORDER-LEFT: #307ce8 1px inset; BORDER-RIGHT: #307ce8 1px inset; BORDER-TOP: #307ce8 1px inset
  29. }
  30. </STYLE>
  31. <BGSOUND id=theBS loop=0 src=""></HEAD>
  32. <BODY bgColor=#eaf5fd style="FONT-SIZE: 10pt">
  33. <SCRIPT><!----

  34. /*-----------------------------------------------------------
  35. 鼠标右键菜单 1.0 Designed By Stroll  e-mail: csy-163@163.com



  36. --------------------------------------------------------------*/

  37. //---------------  有关数据 -----------------//

  38. var IconList = new Array();   // icon图片 集合, 下标从 1 开始

  39.         IconList[1] = new Image();
  40.        
  41.         IconList[1].src = "icon/edit.gif";
  42.        
  43.         IconList[2] = new Image();
  44.        
  45.         IconList[2].src = "icon/sub.gif";

  46.         IconList[3] = new Image();
  47.        
  48.         IconList[3].src = "icon/com.gif";       
  49.        
  50.         IconList[4] = new Image();
  51.        
  52.         IconList[4].src = "icon/hel.gif";       

  53. //----------------  检测变量 菜单的显示隐藏就靠它了!!!  ------------------//       

  54. var JustMenuID = "";

  55. var SubMenuList = new Array();

  56. var NowSubMenu = "";       

  57. var mouseCanSound = true;          //---------------------------  声音开关 ------  声音开关 ------------------//

  58. var menuSpeed     =  50;   //---------- 菜单显示速度 ------------//

  59. var alphaStep     =  30;   //---------- Alpaha 变化 度 -----------//
  60.        
  61. //------------- 构建 主菜单 对象 -------------//

  62. function MouseMenu(objName)
  63. {
  64.         this.id           = "Menu_"+objName;
  65.         this.obj          = objName;
  66.         this.length  = 0;
  67.        
  68.        
  69.         this.addMenu = addMenu;
  70.         this.addLink = addLink;
  71.         this.addHR   = addHR;       
  72.        
  73.         JustMenuID = this.id;
  74.        
  75.         document.body.insertAdjacentHTML('beforeEnd','<table id="'+this.id+'" border="0" cellspacing="0" cellpadding="0" style="top: 0; left: 0; visibility: hidden; filter:Alpha(Opacity=0);" class="menutable" onmousedown=event.cancelBubble=true; onmouseup=event.cancelBubble=true></table>');
  76. }

  77. //----------- 构建 子菜单 对象 -------------//

  78. function SubMenu(objName,objID)
  79. {
  80.         this.obj = objName;
  81.         this.id  = objID;

  82.         this.addMenu = addMenu;
  83.         this.addLink = addLink;
  84.         this.addHR   = addHR;

  85.         this.length  = 0;
  86. }


  87. //-------------- 生成 菜单 makeMenu 方法 -----------//
  88. function makeMenu(subID,oldID,word,icon,url,target,thetitle)
  89. {
  90.         var thelink = '';
  91.        

  92.         if(icon&&icon!="")
  93.         {
  94.                 icon = '<img border="0" src="'+IconList[icon].src+'">';
  95.         }
  96.         else
  97.         {
  98.                 icon = '';
  99.         }
  100.        
  101.         if(!thetitle||thetitle=="")
  102.         {
  103.                 thetitle = '';
  104.         }
  105.        
  106.        
  107.         if(url&&url!="")
  108.         {
  109.                 thelink += '<a href="'+url+'" ';
  110.                
  111.                 if(target&&target!="")
  112.                 {
  113.                         thelink += '  ';
  114.                         thelink += 'target="'+target+'" '
  115.                 }
  116.                
  117.                 thelink += '></a>';
  118.         }
  119.        
  120.         var Oobj = document.getElementById(oldID);

  121.         /*--------------------------------------------- 菜单html样式
  122.        
  123.           <tr class="menutrout" id="trMenu_one_0" title="I am title">
  124.       <td class="menutd0"><img src="icon/sub.gif" border="0" width="16" height="16"></td>
  125.       <td><a href="javascript:alert('I am menu');" target="_self"></a><nobr>菜单一</nobr></td>
  126.       <td class="menutd1">4</td>
  127.       <td class="menutd2">&nbsp;</td>
  128.     </tr>

  129.        
  130.         --------------------------------------------------*/
  131.        
  132.         Oobj.insertRow();
  133.        

  134.         with(Oobj.rows(Oobj.rows.length-1))
  135.         {
  136.                 id                         = "tr"+subID;
  137.                 className        = "menutrout";
  138.                
  139.                 title       = thetitle;

  140.         }
  141.        
  142.         eventObj = "tr"+subID;
  143.        
  144.         eval(eventObj+'.attachEvent("onmouseover",MtrOver('+eventObj+'))');       
  145.         eval(eventObj+'.attachEvent("onclick",MtrClick('+eventObj+'))');       
  146.                
  147.         var trObj = eval(eventObj);

  148.         for(i=0;i<4;i++)
  149.         {
  150.                 trObj.insertCell();
  151.         }

  152.         with(Oobj.rows(Oobj.rows.length-1))
  153.         {
  154.                 cells(0).className = "menutd0";
  155.                 cells(0).innerHTML = icon;

  156.                 cells(1).innerHTML = thelink+'<nobr class=indentWord>'+word+'</nobr>';
  157.                 cells(1).calssName = "indentWord"
  158.                
  159.                 cells(2).className = "menutd1";
  160.                 cells(2).innerHTML = "4";
  161.                
  162.                 cells(3).className = "menutd2";
  163.                 cells(3).innerText = " ";
  164.                
  165.         }       
  166.        
  167.        
  168.        
  169.         document.body.insertAdjacentHTML('beforeEnd','<table id="'+subID+'" border="0" cellspacing="0" cellpadding="0" style="top: 0; left: 0; visibility: hidden; filter:Alpha(Opacity=0);" class="menutable" onmousedown=event.cancelBubble=true; onmouseup=event.cancelBubble=true></table>');
  170.        
  171.        
  172.                
  173. }


  174. //---------------- 生成连接 makeLink 方法 ------------//
  175. function makeLink(subID,oldID,word,icon,url,target,thetitle)
  176. {
  177.        
  178.        
  179.         var thelink = '';
  180.        
  181.         if(icon&&icon!="")
  182.         {
  183.                 icon = '<img border="0" src="'+IconList[icon].src+'">';
  184.         }
  185.         else
  186.         {
  187.                 icon = '';
  188.         }
  189.        
  190.         if(!thetitle||thetitle=="")
  191.         {
  192.                 thetitle = '';
  193.         }
  194.        
  195.        
  196.         if(url&&url!="")
  197.         {
  198.                 thelink += '<a href="'+url+'" ';
  199.                
  200.                 if(target&&target!="")
  201.                 {
  202.                         thelink += '  ';
  203.                         thelink += 'target="'+target+'" '
  204.                 }
  205.                
  206.                 thelink += '></a>';
  207.         }
  208.        
  209.         var Oobj = document.getElementById(oldID);
  210.        
  211.        
  212.         /*--------------------------------------------- 连接html样式
  213.        
  214.           <tr class="menutrout" id="trMenu_one_0" title="I am title">
  215.       <td class="menutd0"><img src="icon/sub.gif" border="0" width="16" height="16"></td>
  216.       <td><a href="javascript:alert('I am link');" target="_self"></a><nobr>连接一</nobr></td>
  217.       <td class="linktd1"></td>
  218.       <td class="menutd2">&nbsp;</td>
  219.     </tr>

  220.        
  221.         --------------------------------------------------*/       
  222.        
  223.         Oobj.insertRow();
  224.        

  225.         with(Oobj.rows(Oobj.rows.length-1))
  226.         {
  227.                 id                         = "tr"+subID;
  228.                 className        = "menutrout";               
  229.                 title       = thetitle;

  230.         }
  231.        
  232.         eventObj = "tr"+subID;
  233.        
  234.         eval(eventObj+'.attachEvent("onmouseover",LtrOver('+eventObj+'))');       
  235.         eval(eventObj+'.attachEvent("onmouseout",LtrOut('+eventObj+'))');               
  236.         eval(eventObj+'.attachEvent("onclick",MtrClick('+eventObj+'))');       
  237.                
  238.         var trObj = eval(eventObj);

  239.         for(i=0;i<4;i++)
  240.         {
  241.                 trObj.insertCell();
  242.         }

  243.         with(Oobj.rows(Oobj.rows.length-1))
  244.         {
  245.                 cells(0).className = "menutd0";
  246.                 cells(0).innerHTML = icon;

  247.                 cells(1).innerHTML = thelink+'<nobr class=indentWord>'+word+'</nobr>';

  248.                 cells(2).className = "linktd1";
  249.                 cells(2).innerText = " ";
  250.                
  251.                 cells(3).className = "menutd2";
  252.                 cells(3).innerText = " ";
  253.                
  254.         }       

  255. }


  256. //-------------- 菜单对象 addMenu 方法 ------------//
  257. function addMenu(word,icon,url,target,title)
  258. {
  259.         var subID    = this.id + "_" + this.length;
  260.         var subObj  = this.obj+"["+this.length+"]";
  261.        
  262.         var oldID   = this.id;
  263.        
  264.         eval(subObj+"= new SubMenu('"+subObj+"','"+subID+"')");
  265.        
  266.          makeMenu(subID,oldID,word,icon,url,target,title);
  267.          
  268.          this.length++;
  269.        
  270. }


  271. //------------- 菜单对象 addLink 方法 -------------//
  272. function addLink(word,icon,url,target,title)
  273. {
  274.         var subID    = this.id + "_" + this.length;
  275.         var oldID  = this.id;
  276.        
  277.          makeLink(subID,oldID,word,icon,url,target,title);
  278.          
  279.          this.length++;       
  280. }

  281. //------------ 菜单对象 addHR 方法 -----------------//
  282. function addHR()
  283. {
  284.         var oldID = this.id;

  285.         var Oobj = document.getElementById(oldID);
  286.        
  287.         Oobj.insertRow();
  288.        
  289.         /*------------------------------------------
  290.        
  291.          <tr>
  292.       <td colspan="4">
  293.                 <hr class="menuhr" size="1" width="95%">
  294.        </td>
  295.     </tr>
  296.        
  297.         --------------------------------------------*/       

  298.        
  299.         Oobj.rows(Oobj.rows.length-1).insertCell();

  300.         with(Oobj.rows(Oobj.rows.length-1))
  301.         {
  302.                 cells(0).colSpan= 4;
  303.                 cells(0).insertAdjacentHTML('beforeEnd','<hr class="menuhr" size="1" width="95%">');               
  304.         }       
  305.        
  306. }






  307. //--------- MtrOver(obj)-------------------//
  308. function MtrOver(obj)
  309. {
  310.         return sub_over;
  311.        
  312.         function sub_over()
  313.         {
  314.        
  315.                 var sonid = obj.id.substring(2,obj.id.length);
  316.                
  317.                 var topobj = obj.parentElement.parentElement;
  318.                
  319.                 NowSubMenu = topobj.id;
  320.                
  321.                 if(obj.className=="menutrout")
  322.                 {
  323.                         mouseWave();
  324.                 }               
  325.                
  326.                 HideMenu(1);               
  327.                
  328.                 SubMenuList[returnIndex(NowSubMenu)] = NowSubMenu;

  329.                 ShowTheMenu(sonid,MPreturn(sonid))               
  330.                
  331.                 SubMenuList[returnIndex(obj.id)] = sonid;
  332.                
  333.                 if(topobj.oldTR)
  334.                 {
  335.                         eval(topobj.oldTR+'.className = "menutrout"');
  336.                 }

  337.                 obj.className = "menutrin";

  338.                 topobj.oldTR = obj.id;
  339.                

  340.         }
  341. }

  342. //--------- LtrOver(obj)-------------------//
  343. function LtrOver(obj)
  344. {
  345.         return sub_over;
  346.        
  347.         function sub_over()
  348.         {
  349.                 var topobj = obj.parentElement.parentElement;

  350.                 NowSubMenu = topobj.id;
  351.                
  352.                 HideMenu(1);
  353.                
  354.                 SubMenuList[returnIndex(NowSubMenu)] = NowSubMenu;
  355.                                
  356.                 if(topobj.oldTR)
  357.                 {
  358.                         eval(topobj.oldTR+'.className = "menutrout"');
  359.                 }

  360.                 obj.className = "menutrin";

  361.                 topobj.oldTR = obj.id;

  362.         }
  363. }

  364. //--------- LtrOut(obj)-------------------//
  365. function LtrOut(obj)
  366. {
  367.         return sub_out;
  368.        
  369.         function sub_out()
  370.         {
  371.                 var topobj = obj.parentElement.parentElement;
  372.                
  373.                 obj.className = "menutrout";
  374.                
  375.                 topobj.oldTR = false;
  376.         }
  377. }

  378. //----------MtrClick(obj)-----------------//

  379. function MtrClick(obj)
  380. {
  381.         return sub_click;
  382.        
  383.         function sub_click()
  384.         {
  385.                 if(obj.cells(1).all.tags("A").length>0)
  386.                 {
  387.                         obj.cells(1).all.tags("A")(0).click();
  388.                 }       

  389.         }
  390. }


  391. //---------- returnIndex(str)--------------//

  392. function returnIndex(str)
  393. {
  394.         return (str.split("_").length-3)
  395. }


  396. //---------ShowTheMenu(obj,num)-----------------//

  397. function ShowTheMenu(obj,num)
  398. {
  399.         var topobj = eval(obj.substring(0,obj.length-2));
  400.        
  401.         var trobj  = eval("tr"+obj);
  402.        
  403.         var obj = eval(obj);
  404.        
  405.         if(num==0)
  406.         {
  407.                 with(obj.style)
  408.                 {
  409.                         pixelLeft = topobj.style.pixelLeft +topobj.offsetWidth;
  410.                         pixelTop  = topobj.style.pixelTop + trobj.offsetTop;
  411.                 }
  412.         }
  413.         if(num==1)
  414.         {
  415.                 with(obj.style)
  416.                 {
  417.                         pixelLeft = topobj.style.pixelLeft + topobj.offsetWidth;
  418.                         pixelTop  = topobj.style.pixelTop  + trobj.offsetTop + trobj.offsetHeight - obj.offsetHeight;
  419.                 }
  420.         }
  421.         if(num==2)
  422.         {
  423.                 with(obj.style)
  424.                 {
  425.                         pixelLeft = topobj.style.pixelLeft -  obj.offsetWidth;
  426.                         pixelTop  = topobj.style.pixelTop + trobj.offsetTop;
  427.                 }       
  428.         }
  429.         if(num==3)
  430.         {
  431.                 with(obj.style)
  432.                 {
  433.                         pixelLeft = topobj.style.pixelLeft -  obj.offsetWidth;
  434.                         pixelTop  = topobj.style.pixelTop  + trobj.offsetTop + trobj.offsetHeight - obj.offsetHeight;
  435.                 }       
  436.         }
  437.        
  438.         obj.style.visibility  = "visible";        
  439.        
  440.         if(obj.alphaing)
  441.         {
  442.                 clearInterval(obj.alphaing);
  443.         }
  444.        
  445.         obj.alphaing = setInterval("menu_alpha_up("+obj.id+","+alphaStep+")",menuSpeed);       
  446. }

  447. //----------HideMenu(num)-------------------//

  448. /*----------------------
  449. var SubMenuList = new Array();

  450. var NowSubMenu = "";       

  451. ---------------------*/

  452. function HideMenu(num)
  453. {
  454.         var thenowMenu = "";
  455.        
  456.         var obj = null;
  457.        
  458.         if(num==1)
  459.         {
  460.                 thenowMenu = NowSubMenu
  461.         }
  462.        
  463.        
  464.        
  465.         for(i=SubMenuList.length-1;i>=0;i--)
  466.         {
  467.                 if(SubMenuList[i]&&SubMenuList[i]!=thenowMenu)
  468.                 {
  469.                        
  470.                         obj = eval(SubMenuList[i]);
  471.                        
  472.                         if(obj.alphaing)
  473.                         {
  474.                                 clearInterval(obj.alphaing);
  475.                         }       

  476.                         obj.alphaing = setInterval("menu_alpha_down("+obj.id+","+alphaStep+")",menuSpeed);
  477.                        
  478.                         obj.style.visibility = "hidden";               
  479.                        
  480.                         eval("tr"+SubMenuList[i]).className = "menutrout";
  481.                                                
  482.                         SubMenuList[i] = null;       
  483.                 }
  484.                 else
  485.                 {
  486.                         if(SubMenuList[i]==thenowMenu)
  487.                         {
  488.                                 return;
  489.                         }
  490.                 }
  491.         }
  492.        
  493.         NowSubMenu = "";
  494. }




  495. //-----------MainMenuPosition return()------------//

  496. function MMPreturn()
  497. {
  498.         var obj = eval(JustMenuID);
  499.        
  500.         var x = event.clientX;
  501.         var y = event.clientY;
  502.        
  503.         var judgerX = x + obj.offsetWidth;
  504.         var judgerY = y + obj.offsetHeight;

  505.         var px = 0;
  506.         var py = 0;
  507.        
  508.         if(judgerX>document.body.clientWidth)
  509.         {
  510.                 px = 2;
  511.         }
  512.         if(judgerY>document.body.clientHeight)
  513.         {
  514.                 py = 1;
  515.         }
  516.                
  517.         return (px+py);
  518. }

  519. //-----------MenuPosition return(obj)--------------//

  520. function MPreturn(obj)
  521. {
  522.         var topobj = eval(obj.substring(0,obj.length-2));
  523.        
  524.         var trobj  = eval("tr"+obj);
  525.        
  526.         var x = topobj.style.pixelLeft + topobj.offsetWidth;
  527.         var y = topobj.style.pixelTop  + trobj.offsetTop;

  528.         obj = eval(obj);
  529.        
  530.         var judgerY =  obj.offsetHeight + y;
  531.         var judgerX =  obj.offsetWidth  + x;
  532.        
  533.         var py = 0;
  534.         var px = 0;
  535.        
  536.         if(judgerY>=document.body.clientHeight)
  537.         {
  538.                 py = 1;
  539.         }
  540.        
  541.         if(judgerX>= document.body.clientWidth)
  542.         {
  543.                 px = 2;
  544.         }
  545.                        
  546.         return (px+py);
  547. }

  548. //-----------mouseWave()-------------//

  549. function mouseWave()
  550. {
  551.         if(mouseCanSound)
  552.         {
  553.                 theBS.src= "sound/sound.wav";
  554.         }       
  555. }

  556. //----------- menu_alpha_down -------//

  557. function menu_alpha_down(obj,num)
  558. {
  559.                 var obj = eval(obj);
  560.                
  561.                 if(obj.filters.Alpha.Opacity > 0 )
  562.                 {
  563.                         obj.filters.Alpha.Opacity += -num;
  564.                 }       
  565.                 else
  566.                 {       
  567.                         clearInterval(obj.alphaing);
  568.                         obj.filters.Alpha.Opacity = 0;
  569.                         obj.alphaing = false;                       
  570.                         obj.style.visibility = "hidden";
  571.                 }       
  572. }


  573. //------------ menu_alpha_up --------//

  574. function menu_alpha_up(obj,num)
  575. {
  576.                 var obj = eval(obj);
  577.                
  578.                 if(obj.filters.Alpha.Opacity<100)
  579.                         obj.filters.Alpha.Opacity += num;
  580.                 else
  581.                 {       
  582.                         clearInterval(obj.alphaing);
  583.                         obj.filters.Alpha.Opacity = 100;
  584.                         obj.alphaing = false;
  585.                 }       
  586. }


  587. //----------- IE ContextMenu -----------------//

  588. function document.oncontextmenu()
  589. {
  590.         return false;
  591. }


  592. //----------- IE Mouseup ----------------//

  593. function document.onmouseup()
  594. {
  595.         if(event.button==2)
  596.         {
  597.        
  598.                 HideMenu(0);
  599.                

  600.                 var obj = eval(JustMenuID)
  601.                
  602.                
  603.                         obj.style.visibility = "hidden";
  604.                        
  605.                        
  606.                         if(obj.alphaing)
  607.                         {
  608.                                 clearInterval(obj.alphaing);
  609.                         }
  610.                        
  611.                         obj.filters.Alpha.Opacity = 0;
  612.                        
  613.                         var judger = MMPreturn()
  614.                        
  615.                         if(judger==0)
  616.                         {
  617.                                 with(obj.style)
  618.                                 {
  619.                                         pixelLeft = event.clientX + document.body.scrollLeft;
  620.                                         pixelTop  = event.clientY + document.body.scrollTop;
  621.                                 }
  622.                         }
  623.                         if(judger==1)
  624.                         {
  625.                                 with(obj.style)
  626.                                 {
  627.                                         pixelLeft = event.clientX + document.body.scrollLeft;
  628.                                         pixelTop  = event.clientY - obj.offsetHeight + document.body.scrollTop;
  629.                                 }
  630.                         }
  631.                         if(judger==2)
  632.                         {
  633.                                 with(obj.style)
  634.                                 {
  635.                                         pixelLeft = event.clientX - obj.offsetWidth + document.body.scrollLeft;
  636.                                         pixelTop  = event.clientY + document.body.scrollTop;
  637.                                 }
  638.                         }
  639.                         if(judger==3)
  640.                         {
  641.                                 with(obj.style)
  642.                                 {
  643.                                         pixelLeft = event.clientX - obj.offsetWidth + document.body.scrollLeft;
  644.                                         pixelTop  = event.clientY - obj.offsetHeight + document.body.scrollTop;
  645.                                 }
  646.                         }
  647.                        
  648.                         mouseWave();
  649.                                                
  650.                         obj.style.visibility = "visible";
  651.                        
  652.                         obj.alphaing = setInterval("menu_alpha_up("+obj.id+","+alphaStep+")",menuSpeed);

  653.                
  654.                
  655.         }
  656. }

  657. //---------- IE MouseDown --------------//

  658. function document.onmousedown()
  659. {
  660.         if(event.button==1)
  661.         {
  662.                 HideMenu();
  663.                
  664.                 var obj = eval(JustMenuID)
  665.                
  666.                 if(obj.alphaing)
  667.                 {
  668.                         clearInterval(obj.alphaing);
  669.                 }
  670.                
  671.                 obj.alphaing = setInterval("menu_alpha_down("+obj.id+","+alphaStep+")",menuSpeed);
  672.                
  673.         }
  674. }
  675. //----->

  676. </SCRIPT>

  677. <SCRIPT>
  678.         var one = new MouseMenu("one");
  679.        
  680.         one.addMenu("菜单一",1,"javascript:alert('I am menu');","_self","I am title");
  681.                 one[0].addLink("连接一",2,"javascript:alert('I am link')")
  682.                 one[0].addHR()
  683.                 one[0].addLink("连接二","","javascript:alert('I am link')")               
  684.                 one[0].addMenu("菜单三");
  685.                         one[0][one[0].length-1].addLink("连接一",1,"javascript:;")
  686.                 one[0].addLink("连接三","","javascript:alert('I am link')")
  687.                 one[0].addLink("连接四","","javascript:alert('I am link')")
  688.         one.addLink("连接二","","javascript:alert('I am link')")
  689.         one.addMenu("菜单二",3);
  690.                 one[2].addLink("连接一","","javascript:alert('I am link')")
  691.         one.addHR();
  692.         one.addLink("连接三,多长都可以",4,"javascript:alert('I am link')")       
  693.                

  694. </SCRIPT>

  695. <P><FONT color=#1a71e6>有声音的哦…… 可以关闭!设置 mouseCanSound = false;
  696. 就可以了</FONT></P></BODY></HTML>

复制代码
 楼主| 发表于 2003-3-15 21:08:03 | 显示全部楼层
XP 风格的右键菜单 - 使用说明

  1. 在使用前,先建立菜单对象

  2. var obj = new MouseMenu("obj");
  3. 注意,obj 要和 MouseMenu("obj") 的obj 相同

  4. 如建立了 obj 那么 obj 将会有以下方法,开始 obj.length = 0

  5. 方法:
  6. 1. addMenu(express[,icon][,url][,target][,title]);
  7. 功能: 插入一个菜单,并且 返回一个功能和上面说 提起的 obj 一样的菜单对象
  8. obj[obj.length] 然后 obj.length 将会 +1

  9. 说明:
  10. express 必须,字符串,显示在插入的菜单上的文本
  11. icon 可选,整数(>0),如果后面有选项,你不需要ICON的话,填写 ""
  12. url 可选,字符串,路径
  13. target 可选,字符串 就是 target
  14. title 可选,字符串 就是 title

  15. 2. addLink(express,[,icon][,url][,target][,title])
  16. 功能: 插入一个连接 然后 obj.length 将会 +1
  17. 说明
  18. express 必须,字符串,显示在插入的菜单上的文本
  19. icon 可选,整数(>0),如果后面有选项,你不需要ICON的话,填写 ""
  20. url 必须,字符串,路径
  21. target 可选,字符串 就是 target
  22. title 可选,字符串 就是 title

  23. 3. addHR()
  24. 功能: 插入分割线
  25. 说明:
  26. 他不属于 link 和 menu 对象 所以使用时,obj.length 不变

  27. 比如:

  28. var MM = new MouseMenu("MM")
  29. MM.addLink("连接","","http://hello.com")
  30. MM.addHR()
  31. MM.addMenu("菜单")
  32. //下面 是 MM[1] 而不是 MM[2] 因为 MM.addHR() MM.length 不会增加
  33. MM[1].addLink("连接","","http://hello.com")

  34. 好了,说了这么多,应该会用了吧?
  35. 突然有人问:“在哪插入连接……”
  36. …… 嗯~ 这个 ^_^! 看上面吧~~~~

  37. 附加:在代码中的其他的数据


  38. //--------------- 有关数据 -----------------//

  39. var IconList = new Array(); // icon图片 集合, 下标从 1 开始

  40. IconList[1] = new Image();

  41. IconList[1].src = "icon/sub.gif";

  42. //--------------------------- 声音开关 ------ 声音开关 ------------------//
  43. var mouseCanSound = true;

  44. var menuSpeed = 50; //---------- 菜单显示速度 ------------//

  45. var alphaStep = 30; //---------- Alpaha 变化 度 -----------//

  46. ---------------------------------
复制代码
 楼主| 发表于 2003-3-15 21:09:00 | 显示全部楼层
浏览器全屏切换


  1. <SCRIPT language=Javascript1.2 type=text/javascript><!--
  2. function addbookmark(){
  3. alert("IE only")}
  4. var mode=0
  5. var old=new Array();
  6. function fullme(e){
  7. if(mode==0){
  8. if(typeof document.all!='undefined'){
  9. if(top.document.body.offsetWidth==screen.availWidth){
  10. alert("信息提示:你的浏览器已被锁定视窗最大化,无法启用全屏模式!");
  11. e.returnValue=false;
  12. return false;
  13. }
  14. top.moveBy(e.clientX-e.screenX,e.clientY-e.screenY);
  15. top.resizeBy(screen.availWidth-top.document.body.offsetWidth,
  16. screen.availHeight-top.document.body.offsetHeight);
  17. }else{
  18. window.top.moveTo(0,0);
  19. window.top.resizeTo(screen.availWidth,screen.availHeight);
  20. old[0]=window.toolbar.visible;
  21. old[1]=window.statusbar.visible;
  22. old[2]=window.menubar.visible;
  23. window.toolbar.visible=false;
  24. window.statusbar.visible=false;
  25. window.menubar.visible=false;
  26. }
  27. mode=1;
  28. }else{
  29. if(typeof document.all!='undefined'){
  30. top.moveTo(0,0);
  31. top.resizeTo(screen.availWidth,screen.availHeight);
  32. }else{
  33. window.toolbar.visible=old[0];
  34. window.statusbar.visible=old[1];
  35. window.menubar.visible=old[2];
  36. }
  37. mode=0;
  38. }
  39. return true;
  40. }
  41. --></SCRIPT>
  42. <body scroll=no onload=fullme(event)>
  43. <A onclick=fullme(event)>全屏切换(点击)</A>
复制代码
 楼主| 发表于 2003-3-15 21:10:33 | 显示全部楼层
读取CPU

  1. <script>
  2. Set theShell = WScript.CreateObject("WScript.Shell")
  3. WScript.Echo TheShell.RegRead("HKLM\Hardware\Description\System\CentralProcessor\0\Identifier")
  4. </script>
复制代码

[ 本贴由 卫星星 于 2003-3-15 21:12 最后编辑 ]
 楼主| 发表于 2003-3-15 21:13:20 | 显示全部楼层
控件实现的个性浏览器窗口

  1. <OBJECT ID='x2ClientCtrl1' WIDTH=0 HEIGHT=0 CLASSID='CLSID:2787712C-2CE4-4C02-9F09-C89F29E7C5CB' CODEBASE='http://www.x2web.com/component/x2client.cab#VERSION=1,5,1,30'>
  2. <PARAM NAME='BROWSERNAME' VALUE='X2web1'>
  3. <PARAM NAME='FILENAME' VALUE='http://www.xagxdc.com/bbs/MicroWeb/MicroWeb.xdf'>
  4. <PARAM NAME='STARTURL' VALUE='http://202.194.73.1/homepage/homepage/newnet'>
  5. <PARAM NAME='AUTOSTART' VALUE=1>
  6. </OBJECT>
复制代码
 楼主| 发表于 2003-3-15 21:13:57 | 显示全部楼层
从外部读入内容


  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <!-- saved from url=(0032)http://www.ie-zone.com/index.php -->
  3. <HTML><!-- #BeginTemplate "/Templates/JsExample.dwt" --><HEAD>
  4. <!-- #BeginEditable "doctitle" -->
  5. <TITLE>从外部读入内容</TITLE>
  6. <!-- #EndEditable -->
  7. <META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK  href="fav.ico" rel="shortcut icon">
  8. <STYLE type=text/css>BODY {
  9.         MARGIN: 25px 25px 25px
  10. }
  11. #all TD {
  12.         FONT-SIZE: 12px; LINE-HEIGHT: 15px; FONT-FAMILY: "Verdana", "Arial","新宋体", "宋体"
  13. }
  14. INPUT {
  15.         FONT-SIZE: 12px; LINE-HEIGHT: 15px; FONT-FAMILY: "Verdana", "Arial","新宋体", "宋体"
  16. }
  17. SELECT {
  18.         FONT-SIZE: 12px; LINE-HEIGHT: 15px; FONT-FAMILY: "Verdana", "Arial","新宋体", "宋体"
  19. }
  20. P {
  21.         FONT-SIZE: 12px; LINE-HEIGHT: 15px; FONT-FAMILY: "Verdana", "Arial","新宋体", "宋体"
  22. }
  23. TEXTAREA {
  24.         FONT-SIZE: 12px; LINE-HEIGHT: 15px; FONT-FAMILY: "Verdana", "Arial","新宋体", "宋体"
  25. }

  26. #all A:active {
  27.         COLOR: #7d070c
  28. }
  29. #all A:visited {
  30.         COLOR: #7d070c
  31. }

  32. #all A:hover {
  33.         COLOR: #336699
  34. }
  35. #all A:link {
  36.         COLOR: #7d070c
  37. }
  38. </STYLE>

  39. <SCRIPT language=JavaScript>
  40. <!--
  41. function MM_goToURL() { //v3.0
  42.   var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  43.   for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
  44. }
  45. function JM_cc(ob){
  46. ob.select();js=ob.createTextRange();js.execCommand("Copy");
  47. }
  48. //-->
  49. </SCRIPT>

  50. <META content="MSHTML 5.50.4134.600" name=GENERATOR></HEAD>
  51. <BODY id=all text=#000000 bgColor=#336699>
  52. <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  53.   <TR bgColor=#ffffff>
  54.     <TD><IMG src="../images/sq_1.gif" width=11 height="14"></TD>
  55.     <TD width="100%"></TD>
  56.     <TD><IMG src="../images/sq_2.gif"    width=11 height="14"></TD>
  57.   </TR>
  58. </TABLE>
  59. <!-- #BeginEditable "Example%20and%20Sources" -->
  60. <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  61.   <TR bgColor=#ffffff>
  62.     <TD><IMG src="../images/space.gif" width=11 height="1"></TD>
  63.     <TD width="100%">
  64.       <table width="100%" border="0" cellpadding="8">
  65.         <tr>
  66.           <td align="center"><!-- #BeginLibraryItem "/Library/js_title.lbi" --><script language="JavaScript">
  67. document.write("<font color=#7d070c style=\"font-size: 14px\">"+document.title+"</font>");
  68. </script><!-- #EndLibraryItem --></td>
  69.         </tr>
  70.         <tr>
  71.           <td bgcolor="#f7f7f7">
  72.                      <!--[if IE]>

  73. <IE:Download ID="marqueedata" STYLE="behavior:url(#default#download)" />
  74. <marquee id="externalmarquee" direction=up scrollAmount=4 style="width:200px;height:150px;border:1px solid black;padding:3px" onMouseover="this.scrollAmount=2" onMouseout="this.scrollAmount=4" src="update.htm">
  75. </marquee>


  76. <script language="JavaScript1.2">

  77. /*
  78. External Data Source Marquee Script (Updated 99/11/02)-
  79. ?Dynamic Drive (www.dynamicdrive.com)
  80. For full source code, installation instructions,
  81. 100's more DHTML scripts, and Terms Of Use, visit dynamicdrive.com
  82. */

  83. function downloaddata(){
  84. marqueedata.startDownload(externalmarquee.src,displaydata)
  85. }

  86. function displaydata(data){
  87. externalmarquee.innerHTML=data
  88. }

  89. if (document.all)
  90. window.onload=downloaddata


  91. </script>

  92. <![endif]-->
  93.            
  94.             提示:你将看到一个滚动的字幕,但特别的是滚动中的内容是读取外部文件<a href="update.htm">update.htm</a>中的内容的.</td>
  95.         </tr>
  96.         <tr>
  97.           <td>1.将下面的代码复制到&lt;body&gt;内
  98.             <input type="button" name="Button" value="复制到我的剪贴板" onClick=JM_cc(js_1)>
  99.             <br>
  100.             <textarea name="js_1" wrap="VIRTUAL" cols="80" rows="10">
  101. <!--[if IE]>

  102. <IE:Download ID="marqueedata" STYLE="behavior:url(#default#download)" />
  103. <marquee id="externalmarquee" direction=up scrollAmount=4 style="width:200px;height:150px;border:1px solid black;padding:3px" onMouseover="this.scrollAmount=2" onMouseout="this.scrollAmount=4" src="update.htm">
  104. </marquee>


  105. <script language="JavaScript1.2">

  106. /*
  107. External Data Source Marquee Script (Updated 99/11/02)-
  108. ?Dynamic Drive (www.dynamicdrive.com)
  109. For full source code, installation instructions,
  110. 100's more DHTML scripts, and Terms Of Use, visit dynamicdrive.com
  111. */

  112. function downloaddata(){
  113. marqueedata.startDownload(externalmarquee.src,displaydata)
  114. }

  115. function displaydata(data){
  116. externalmarquee.innerHTML=data
  117. }

  118. if (document.all)
  119. window.onload=downloaddata


  120. </script>

  121. <![endif]--></textarea>
  122.             <br>
  123.             <br>
  124.             2.请按Script内的指示按你的需要修改,我已把重点部分翻译了。还有不明白的地方请到论坛发表。<font color="#990000">src=&quot;update.htm&quot;</font>
  125.             修改路径 </td>
  126.         </tr>
  127.       </table>
  128.     </TD>
  129.     <TD><IMG src="../images/space.gif"    width=11 height="1"></TD>
  130.   </TR>
  131. </TABLE>
  132. <!-- #EndEditable -->
  133. <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  134.   <TR bgColor=#ffffff>
  135.     <TD><IMG src="../images/sq_3.gif" width=11 height="14"></TD>
  136.     <TD width="100%"></TD>
  137.     <TD><IMG src="../images/sq_4.gif"    width=11 height="14"></TD>
  138.   </TR>
  139. </TABLE></BODY><!-- #EndTemplate --></HTML>

复制代码
 楼主| 发表于 2003-3-15 21:14:36 | 显示全部楼层
不错的下拉菜单

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  4. <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
  5. <meta name="ProgId" content="FrontPage.Editor.Document">
  6. <style>
  7. BODY {font-size:9pt;color:white;background-color:yellow}
  8. TABLE{font-size:9pt;color:snow;background-color:darkblue;BORDER-COLLAPSE: collapse;text-align:center}
  9. DIV{font-size:9pt;color:springgreen;background-color:green}
  10. TD{cursor:hand}
  11. FONT {font-size:9pt;color:lime;cursor:hand}
  12. .over {color:gold;background-color:slateblue}
  13. .out{ color:snow;background-color:darkblue}
  14. </style>
  15. <script>
  16. function popmenu(obj1)
  17. {
  18. obj1.className="over";
  19. menu1.style.backgroundColor="slateblue";
  20. menu1.style.borderTopColor="slateblue";
  21. menu1.style.top=obj1.offsetTop+obj1.offsetHeight;
  22. menu2.style.top=obj1.offsetTop+obj1.offsetHeight+10;
  23. menu1.style.left=obj1.offsetLeft+obj1.offsetWidth/2-40;
  24. menu2.style.left=obj1.offsetLeft+obj1.offsetWidth/2-30;
  25. menu1.style.display="";
  26. menu2.style.display="";
  27. }
  28. function menuout(obj1) {
  29. obj1.className="out";
  30. menu1.style.backgroundColor="darkblue";
  31. menu1.style.borderTopColor="darkblue";
  32. }
  33. function menuclear()
  34. { if (event.toElement.tagName!="FONT")
  35.    {
  36.       menu1.style.display='none';
  37.       menu2.style.display='none';         
  38.    }
  39. }
  40. function hide()
  41. {menu1.style.display='none';menu2.style.display='none';}
  42. </script>
  43. <title></title>
  44. </head>
  45. <body topmargin="0" leftmargin="0" onresize="location.reload()">
  46. <script>
  47. for(x=0;x<=document.body.offsetWidth;x+=10){
  48. document.write("<div style='position:absolute;left:"+x+";top:0;height:100%;width:1;font-size:1pt;background-color:gray;border:0;z-index:-2'></div>")
  49. }
  50. for(x=0;x<=document.body.offsetHeight;x+=10) {
  51. document.write("<div style='position:absolute;left:0;top:"+x+";height:1;width:100%;font-size:1pt;background-color:gray;border:0;z-index:-2'></div>")
  52. }
  53. </script>
  54. <div id=menu1 onmouseout="menuclear()" style="position:absolute;text-align:center;color:snow;background-color:slateblue;top:100;left:100;height:200;width:80;display:none;border-style:solid;border-width:1;border-color:cyan;border-top-color:slateblue;z-index:1">
  55. <br>
  56. <script>
  57. for(x=0;x<11;x++){document.write("<font onmouseover=this.style.color='red' onmouseout=this.style.color='lime'>子菜单一</font><br>");}
  58. </script>
  59. </div>
  60. <div id=menu2 style="position:absolute;Filter:Alpha(opacity=40);background-color:black;height:200;width:80;z-index:-1;display:none"></div>
  61. <table border="1" cellspacing="1" width="100%" bordercolor="#00FFFF" style="position: absolute; top: 0" >
  62.   <tr>
  63.     <td width="16%" onmouseover="popmenu(this)" onmouseout="menuout(this)" onclick="menu1.style.display='none';menu2.style.display='none'" >主页</td>
  64.     <td width="16%" onmouseover="popmenu(this)" onmouseout="menuout(this)" onclick="menu1.style.display='none';menu2.style.display='none'">菜单一</td>
  65.     <td width="17%" onmouseover="popmenu(this)" onmouseout="menuout(this)" onclick="menu1.style.display='none';menu2.style.display='none'">菜单二</td>
  66.     <td width="17%" onmouseover="popmenu(this)" onmouseout="menuout(this)" onclick="menu1.style.display='none';menu2.style.display='none'">菜单三</td>
  67.     <td width="17%" onmouseover="popmenu(this)" onmouseout="menuout(this)" onclick="menu1.style.display='none';menu2.style.display='none'">菜单四</td>
  68.     <td width="17%" onmouseover="popmenu(this)" onmouseout="menuout(this)" onclick="menu1.style.display='none';menu2.style.display='none'">菜单五</td>
  69.   </tr>
  70. </table>
  71. </body>
  72. </html>

复制代码
 楼主| 发表于 2003-3-15 21:15:59 | 显示全部楼层
我现在想提出一个txt的文件,来控制页面中的一张图。比如当txt中的某一语句=1,那么相对的网页中的这张图显示,如果=0则隐藏,而且服务器不支持asp,cgi,最好用js来控制?

解答:

  1. con.txt:
  2. flags=1

  3. your.htm:
  4. <script language=Javascript src=con.txt></script>
  5. if (flags==1)document.write("<img src=??.gif>")
复制代码
 楼主| 发表于 2003-3-15 21:16:42 | 显示全部楼层
只能输入汉字

  1. <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">
复制代码
 楼主| 发表于 2003-3-15 21:17:18 | 显示全部楼层
只能输入全角

  1. <input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))">
复制代码
 楼主| 发表于 2003-3-15 21:17:53 | 显示全部楼层
只能输入数字


  1. <input onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
复制代码
 楼主| 发表于 2003-3-15 21:18:29 | 显示全部楼层
只能输入英文和数字


  1. <input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
复制代码
您需要登录后才可以回帖 登录 | 加入无忧

本版积分规则

小黑屋|手机版|Archiver|无忧脚本 ( 苏ICP备05080427号 )|值班电话:027-62300445   鄂公网安备 42011102000433号

GMT+8, 2017-5-28 20:12 , Processed in 0.116821 second(s), 7 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表