mirror of
https://scm.univ-tours.fr/22107988t/rappaurio-sae501_502.git
synced 2025-09-28 20:45:01 +02:00
5176 lines
1.1 MiB
5176 lines
1.1 MiB
<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style>
|
||
.KEYW {color: #933;}
|
||
.COMM {color: #bbb; font-style: italic;}
|
||
.NUMB {color: #393;}
|
||
.STRN {color: #393;}
|
||
.REGX {color: #339;}
|
||
.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
|
||
</style></head><body><pre><span class='line'> 1</span> <span class="TOKN"></span><span class="WHIT">
|
||
<span class='line'> 2</span> </span><span class="COMM">/**
|
||
<span class='line'> 3</span> * @name CeL function for web
|
||
<span class='line'> 4</span> * @fileoverview
|
||
<span class='line'> 5</span> * 本檔案包含了 web 的 functions。
|
||
<span class='line'> 6</span> * @since
|
||
<span class='line'> 7</span> */</span><span class="WHIT">
|
||
<span class='line'> 8</span>
|
||
<span class='line'> 9</span> </span><span class="COMM">/*
|
||
<span class='line'> 10</span> http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K902.aspx
|
||
<span class='line'> 11</span> http://www.nczonline.net/blog/2010/01/12/history-of-the-user-agent-string/
|
||
<span class='line'> 12</span> 當 IE 初次推出它們的 User Agent 標誌的時候,是這個樣子:
|
||
<span class='line'> 13</span> MSIE/3.0 (Win95; U)
|
||
<span class='line'> 14</span>
|
||
<span class='line'> 15</span> TODO:
|
||
<span class='line'> 16</span> don't use .innerHTML
|
||
<span class='line'> 17</span> 通盤確認所有 HTMLElement 變數已經設成 null
|
||
<span class='line'> 18</span>
|
||
<span class='line'> 19</span>
|
||
<span class='line'> 20</span> 功能探測 vs 瀏覽器探測
|
||
<span class='line'> 21</span> http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K987.aspx
|
||
<span class='line'> 22</span> Mark Pilgrim 有一個清單,它可以讓你探測任何功能。
|
||
<span class='line'> 23</span> http://diveintohtml5.org/everything.html
|
||
<span class='line'> 24</span>
|
||
<span class='line'> 25</span> */</span><span class="WHIT">
|
||
<span class='line'> 26</span>
|
||
<span class='line'> 27</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">CeL</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'> 28</span>
|
||
<span class='line'> 29</span> </span><span class="COMM">/**
|
||
<span class='line'> 30</span> * 本 module 之 name(id),<span style="text-decoration:line-through;">不設定時會從呼叫時之 path (directory + file name) 取得</span>。
|
||
<span class='line'> 31</span> * @type String
|
||
<span class='line'> 32</span> * @constant
|
||
<span class='line'> 33</span> * @inner
|
||
<span class='line'> 34</span> * @ignore
|
||
<span class='line'> 35</span> */</span><span class="WHIT">
|
||
<span class='line'> 36</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">module_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'net.web'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 37</span>
|
||
<span class='line'> 38</span> </span><span class="COMM">//===================================================</span><span class="WHIT">
|
||
<span class='line'> 39</span> </span><span class="COMM">/**
|
||
<span class='line'> 40</span> * 若欲 include 整個 module 時,需囊括之 code。
|
||
<span class='line'> 41</span> * @type Function
|
||
<span class='line'> 42</span> * @param {Function} library_namespace namespace of library
|
||
<span class='line'> 43</span> * @param load_arguments 呼叫時之 argument(s)
|
||
<span class='line'> 44</span> * @return
|
||
<span class='line'> 45</span> * @name CeL.net.web
|
||
<span class='line'> 46</span> * @constant
|
||
<span class='line'> 47</span> * @inner
|
||
<span class='line'> 48</span> * @ignore
|
||
<span class='line'> 49</span> */</span><span class="WHIT">
|
||
<span class='line'> 50</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">library_namespace</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">load_arguments</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'> 51</span>
|
||
<span class='line'> 52</span> </span><span class="COMM">// requires</span><span class="WHIT">
|
||
<span class='line'> 53</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">eval</span><span class="PUNC">(</span><span class="NAME">library_namespace.use_function</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'> 54</span> </span><span class="WHIT"> </span><span class="STRN">'code.compatibility.is_DOM,data.split_String_to_Object'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'> 55</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 56</span>
|
||
<span class='line'> 57</span>
|
||
<span class='line'> 58</span> </span><span class="COMM">/**
|
||
<span class='line'> 59</span> * null module constructor
|
||
<span class='line'> 60</span> * @class web 的 functions
|
||
<span class='line'> 61</span> */</span><span class="WHIT">
|
||
<span class='line'> 62</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'> 63</span> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'> 64</span> </span><span class="WHIT"> </span><span class="COMM">// null module constructor</span><span class="WHIT">
|
||
<span class='line'> 65</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 66</span>
|
||
<span class='line'> 67</span> </span><span class="COMM">/**
|
||
<span class='line'> 68</span> * for JSDT: 有 prototype 才會將之當作 Class
|
||
<span class='line'> 69</span> */</span><span class="WHIT">
|
||
<span class='line'> 70</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'> 71</span> </span><span class="PUNC">.</span><span class="NAME">prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'> 72</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 73</span>
|
||
<span class='line'> 74</span>
|
||
<span class='line'> 75</span>
|
||
<span class='line'> 76</span>
|
||
<span class='line'> 77</span>
|
||
<span class='line'> 78</span>
|
||
<span class='line'> 79</span> </span><span class="COMM">/*
|
||
<span class='line'> 80</span> HTML only -------------------------------------------------------
|
||
<span class='line'> 81</span> */</span><span class="WHIT">
|
||
<span class='line'> 82</span>
|
||
<span class='line'> 83</span> </span><span class="COMM">/**
|
||
<span class='line'> 84</span> * NodeType: const unsigned short.
|
||
<span class='line'> 85</span> * @see
|
||
<span class='line'> 86</span> * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-1950641247
|
||
<span class='line'> 87</span> * http://www.w3.org/TR/DOM-Level-2-Core/core.html
|
||
<span class='line'> 88</span> * ELEMENT_NODE,ATTRIBUTE_NODE,TEXT_NODE,CDATA_SECTION_NODE,ENTITY_REFERENCE_NODE,ENTITY_NODE,PROCESSING_INSTRUCTION_NODE,COMMENT_NODE,DOCUMENT_NODE,DOCUMENT_TYPE_NODE,DOCUMENT_FRAGMENT_NODE,NOTATION_NODE
|
||
<span class='line'> 89</span> * @inner
|
||
<span class='line'> 90</span> */</span><span class="WHIT">
|
||
<span class='line'> 91</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ELEMENT_NODE</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'> 92</span> </span><span class="WHIT"> </span><span class="NAME">TEXT_NODE</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'> 93</span> </span><span class="WHIT"> </span><span class="NAME">DOCUMENT_NODE</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">9</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 94</span>
|
||
<span class='line'> 95</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">is_DOM</span><span class="PUNC">(</span><span class="STRN">'document'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
|
||
<span class='line'> 96</span> </span><span class="WHIT"> </span><span class="COMM">// IE8: undefined</span><span class="WHIT">
|
||
<span class='line'> 97</span> </span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">document.ELEMENT_NODE</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'> 98</span> </span><span class="WHIT"> </span><span class="NAME">ELEMENT_NODE</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.ELEMENT_NODE</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'> 99</span> </span><span class="WHIT"> </span><span class="NAME">TEXT_NODE</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.TEXT_NODE</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>100</span> </span><span class="WHIT"> </span><span class="NAME">DOCUMENT_NODE</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.DOCUMENT_NODE</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>101</span>
|
||
<span class='line'>102</span> </span><span class="COMM">// IE 中 Object.prototype.toString.call(HTML Element)==='[object Object]', 得用 ''+node</span><span class="WHIT">
|
||
<span class='line'>103</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">get_object_type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Object.prototype.toString</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>104</span> </span><span class="NAME">element_pattern</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/^\[object HTML([A-U][A-Za-z]{1,15})?Element\]$/</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>105</span>
|
||
<span class='line'>106</span>
|
||
<span class='line'>107</span>
|
||
<span class='line'>108</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>109</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>110</span> </span><span class="COMM">/**
|
||
<span class='line'>111</span> * 判斷是否為 HTML Element。
|
||
<span class='line'>112</span> * @param value value to test
|
||
<span class='line'>113</span> * @return {Boolean} value is HTML Element
|
||
<span class='line'>114</span> * @since 2010/6/23 02:32:41
|
||
<span class='line'>115</span> * @memberOf CeL.net.web
|
||
<span class='line'>116</span> * @see
|
||
<span class='line'>117</span> * http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-58190037,
|
||
<span class='line'>118</span> * http://www.w3.org/DOM/
|
||
<span class='line'>119</span> */</span><span class="WHIT">
|
||
<span class='line'>120</span> </span><span class="NAME">is_HTML_element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>121</span> </span><span class="WHIT"> </span><span class="COMM">// return get_object_type.call(value).indexOf('[object HTML')===0;</span><span class="WHIT">
|
||
<span class='line'>122</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">element_pattern.test</span><span class="PUNC">(</span><span class="NAME">get_object_type.call</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>123</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">'[object Text]'</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">get_object_type.call</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>124</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">TEXT_NODE</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>125</span> </span><span class="WHIT"> </span><span class="COMM">// return get_object_type.call(value).match(element_pattern);</span><span class="WHIT">
|
||
<span class='line'>126</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>127</span>
|
||
<span class='line'>128</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>129</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>130</span> </span><span class="COMM">/**
|
||
<span class='line'>131</span> * 判斷為指定 nodeType 之 HTML Element。
|
||
<span class='line'>132</span> * @param value value to test
|
||
<span class='line'>133</span> * @param type type
|
||
<span class='line'>134</span> * @return {Boolean} value is the type of HTML Element
|
||
<span class='line'>135</span> * @since 2010/6/23 02:32:41
|
||
<span class='line'>136</span> * @memberOf CeL.net.web
|
||
<span class='line'>137</span> * @see
|
||
<span class='line'>138</span> * http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-58190037,
|
||
<span class='line'>139</span> * http://www.w3.org/DOM/
|
||
<span class='line'>140</span> */</span><span class="WHIT">
|
||
<span class='line'>141</span> </span><span class="NAME">is_HTML_element_type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>142</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">TEXT_NODE</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
|
||
<span class='line'>143</span> </span><span class="WHIT"> </span><span class="STRN">'[object Text]'</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">get_object_type.call</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">TEXT_NODE</span><span class="WHIT">
|
||
<span class='line'>144</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">element_pattern.test</span><span class="PUNC">(</span><span class="NAME">get_object_type.call</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>145</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>146</span>
|
||
<span class='line'>147</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>148</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>149</span> </span><span class="COMM">/**
|
||
<span class='line'>150</span> * 判斷為 HTML Element。
|
||
<span class='line'>151</span> * @param value value to test
|
||
<span class='line'>152</span> * @return {Boolean} value is HTML Element
|
||
<span class='line'>153</span> * @since 2010/6/23 02:32:41
|
||
<span class='line'>154</span> * @memberOf CeL.net.web
|
||
<span class='line'>155</span> * @see
|
||
<span class='line'>156</span> * http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-58190037,
|
||
<span class='line'>157</span> * http://www.w3.org/DOM/
|
||
<span class='line'>158</span> */</span><span class="WHIT">
|
||
<span class='line'>159</span> </span><span class="NAME">is_element_node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>160</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('Test '+get_object_type.call(value)+' '+((typeof value==='object'||typeof value==='function')&&value.nodeType||'')+': '+element_pattern.test(get_object_type.call(value))+','+(value.nodeType === 1));</span><span class="WHIT">
|
||
<span class='line'>161</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">element_pattern.test</span><span class="PUNC">(</span><span class="NAME">get_object_type.call</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">ELEMENT_NODE</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>162</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>163</span>
|
||
<span class='line'>164</span>
|
||
<span class='line'>165</span> </span><span class="COMM">/*
|
||
<span class='line'>166</span>
|
||
<span class='line'>167</span> IE5DOM @ IE9 test:
|
||
<span class='line'>168</span> IE7DOM @ IE9 test:
|
||
<span class='line'>169</span> node <DIV>: type object, toString.call: [object Object], ""+node: [object], nodeType: 1:
|
||
<span class='line'>170</span>
|
||
<span class='line'>171</span> IE8:
|
||
<span class='line'>172</span> IE8DOM @ IE9 test:
|
||
<span class='line'>173</span> IE9DOM @ IE9 test:
|
||
<span class='line'>174</span> node <DIV>: type object, toString.call: [object Object], ""+node: [object HTMLDivElement], nodeType: 1:
|
||
<span class='line'>175</span>
|
||
<span class='line'>176</span> IE8:
|
||
<span class='line'>177</span> node <A>: type object, toString.call: [object Object], ""+node: , nodeType: 1:
|
||
<span class='line'>178</span> node <OBJECT>: type object, toString.call: [object Object], ""+node: [object], nodeType: 1:
|
||
<span class='line'>179</span>
|
||
<span class='line'>180</span> */</span><span class="WHIT">
|
||
<span class='line'>181</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">show_node</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>182</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_.is_element_node</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>183</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.debug</span><span class="PUNC">(</span><span class="STRN">'node'</span><span class="WHIT">
|
||
<span class='line'>184</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node.tagName</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">' <'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">node.tagName</span><span class="WHIT">
|
||
<span class='line'>185</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node.id</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'#'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">node.id</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">': type '</span><span class="WHIT">
|
||
<span class='line'>186</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', toString.call: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">get_object_type.call</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>187</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', ""+node: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', nodeType: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">node.nodeType</span><span class="WHIT">
|
||
<span class='line'>188</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">'innerHTML'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">': '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">node.innerHTML</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>189</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>190</span>
|
||
<span class='line'>191</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>192</span> </span><span class="WHIT"> </span><span class="COMM">// workaround for IE, 因用 General type, 效能較差</span><span class="WHIT">
|
||
<span class='line'>193</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>194</span> </span><span class="WHIT"> </span><span class="COMM">// alert('toString test: ' + element_pattern.test(get_object_type.call(d)));</span><span class="WHIT">
|
||
<span class='line'>195</span>
|
||
<span class='line'>196</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">d.nodeType</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">ELEMENT_NODE</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>197</span> </span><span class="WHIT"> </span><span class="COMM">// doesn't support W3C DOM?</span><span class="WHIT">
|
||
<span class='line'>198</span> </span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>199</span>
|
||
<span class='line'>200</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element_pattern.test</span><span class="PUNC">(</span><span class="NAME">get_object_type.call</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>201</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element_pattern.test</span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>202</span> </span><span class="WHIT"> </span><span class="COMM">// IE8-9</span><span class="WHIT">
|
||
<span class='line'>203</span> </span><span class="WHIT"> </span><span class="NAME">_.is_HTML_element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>204</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">element_pattern.test</span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>205</span> </span><span class="WHIT"> </span><span class="COMM">// for IE8. value 可能是 null!</span><span class="WHIT">
|
||
<span class='line'>206</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">ELEMENT_NODE</span><span class="COMM">// && value.tagName === "OBJECT"</span><span class="WHIT">
|
||
<span class='line'>207</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="STRN">"[object NamedNodeMap]"</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">value.attributes</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>208</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>209</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">get_object_type.call</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'[object Object]'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>210</span> </span><span class="WHIT"> </span><span class="COMM">// IE5-7, 這種判別方法有漏洞!</span><span class="WHIT">
|
||
<span class='line'>211</span> </span><span class="WHIT"> </span><span class="NAME">_.is_HTML_element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>212</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'[object Object]'</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">get_object_type.call</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">value.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>213</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>214</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>215</span> </span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>216</span>
|
||
<span class='line'>217</span> </span><span class="WHIT"> </span><span class="COMM">// General type</span><span class="WHIT">
|
||
<span class='line'>218</span> </span><span class="WHIT"> </span><span class="NAME">_.is_HTML_element_type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>219</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_.is_HTML_element</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>220</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>221</span> </span><span class="WHIT"> </span><span class="NAME">_.is_element_node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>222</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_.is_HTML_element</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">ELEMENT_NODE</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>223</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>224</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>225</span>
|
||
<span class='line'>226</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>227</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: handle exception</span><span class="WHIT">
|
||
<span class='line'>228</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">finally</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>229</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>230</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>231</span>
|
||
<span class='line'>232</span>
|
||
<span class='line'>233</span>
|
||
<span class='line'>234</span> </span><span class="COMM">/* test if can use flash
|
||
<span class='line'>235</span>
|
||
<span class='line'>236</span> better use SWFObject:
|
||
<span class='line'>237</span> http://code.google.com/p/swfobject/
|
||
<span class='line'>238</span>
|
||
<span class='line'>239</span> Browser detect: http://www.quirksmode.org/js/detect.html
|
||
<span class='line'>240</span> var plugin=(window.navigator.mimeTypes && window.navigator.mimeTypes["application/x-shockwave-flash"]) ? window.navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
|
||
<span class='line'>241</span> if ( plugin ) {
|
||
<span class='line'>242</span> plugin=parseInt(plugin.description.substring(plugin.description.indexOf(".")-1)) >= 3;
|
||
<span class='line'>243</span> }
|
||
<span class='line'>244</span> else if (window.navigator.userAgent && window.navigator.userAgent.indexOf("MSIE")>=0 && window.navigator.userAgent.indexOf("Windows")>=0) {
|
||
<span class='line'>245</span> document.write('<SCRIPT LANGUAGE=VBScript\> \n');
|
||
<span class='line'>246</span> document.write('on error resume next \n');
|
||
<span class='line'>247</span> document.write('plugin=( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6")))\n');
|
||
<span class='line'>248</span> document.write('<\/SCRIPT\> \n');
|
||
<span class='line'>249</span> }
|
||
<span class='line'>250</span> if ( plugin ) {
|
||
<span class='line'>251</span> document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"');
|
||
<span class='line'>252</span> document.write(' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" ');
|
||
<span class='line'>253</span> document.write(' ID=flash5clickTAG WIDTH='+n_width+' HEIGHT='+n_height+'>');
|
||
<span class='line'>254</span> document.write(' <PARAM NAME=movie VALUE="'+ n_flashfile +'"><param name=wmode value=opaque><PARAM NAME=loop VALUE=true><PARAM NAME=quality VALUE=high> ');
|
||
<span class='line'>255</span> document.write(' <EMBED src="'+ n_flashfile +'" loop=true wmode=opaque quality=high ');
|
||
<span class='line'>256</span> document.write(' swLiveConnect=FALSE WIDTH='+n_width+' HEIGHT='+n_height+'');
|
||
<span class='line'>257</span> document.write(' TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">');
|
||
<span class='line'>258</span> document.write(' <\/EMBED>');
|
||
<span class='line'>259</span> document.write(' <\/OBJECT>');
|
||
<span class='line'>260</span> } else if (!(window.navigator.appName && window.navigator.appName.indexOf("Netscape")>=0 && window.navigator.appVersion.indexOf("2.")>=0)){
|
||
<span class='line'>261</span> document.write('<A HREF="'+ n_altURL +'" target="'+n_target+'"><IMG SRC="'+ n_altimg +'" WIDTH='+n_width+' HEIGHT='+n_height+' BORDER=0><\/A>');
|
||
<span class='line'>262</span> }
|
||
<span class='line'>263</span> */</span><span class="WHIT">
|
||
<span class='line'>264</span>
|
||
<span class='line'>265</span> </span><span class="COMM">// copy from base.js</span><span class="WHIT">
|
||
<span class='line'>266</span> </span><span class="COMM">//window.onerror=HandleError;</span><span class="WHIT">
|
||
<span class='line'>267</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">HandleError</span><span class="PUNC">(</span><span class="NAME">message</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">url</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">line</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>268</span> </span><span class="WHIT"> </span><span class="COMM">// if(window.confirm())_DO_CONTINUE_</span><span class="WHIT">
|
||
<span class='line'>269</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">window.navigator.appName</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"Microsoft Internet Explorer"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>270</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">window.confirm</span><span class="PUNC">(</span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\n\nJavaScript Error: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">line</span><span class="WHIT">
|
||
<span class='line'>271</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">message</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\n\nSee more details?'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>272</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">window.navigator.appName</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"Netscape"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>273</span> </span><span class="WHIT"> </span><span class="COMM">// document.location.href="javascript:";</span><span class="WHIT">
|
||
<span class='line'>274</span> </span><span class="WHIT"> </span><span class="NAME">window.navigate</span><span class="PUNC">(</span><span class="STRN">'javascript:'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>275</span>
|
||
<span class='line'>276</span> </span><span class="WHIT"> </span><span class="COMM">//return message; 'Warning: function HandleError does not always return a value' in some Firebird with user_pref("javascript.options.strict", true); @ prefs.js</span><span class="WHIT">
|
||
<span class='line'>277</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>278</span>
|
||
<span class='line'>279</span> </span><span class="COMM">//window.onresize=OnResize; // 預防(舊版)NS resize時版面亂掉</span><span class="WHIT">
|
||
<span class='line'>280</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">OnResize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>281</span> </span><span class="WHIT"> </span><span class="COMM">// 回上一頁 history.go(-1),history.back()/history.forward() this.location.replace(document.referrer)</span><span class="WHIT">
|
||
<span class='line'>282</span> </span><span class="WHIT"> </span><span class="COMM">// Opera's document.referrer returns only null if referrer logging is disabled</span><span class="WHIT">
|
||
<span class='line'>283</span> </span><span class="WHIT"> </span><span class="COMM">//location.replace(),location.reload()</span><span class="WHIT">
|
||
<span class='line'>284</span> </span><span class="WHIT"> </span><span class="NAME">history.go</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>285</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>286</span>
|
||
<span class='line'>287</span> </span><span class="COMM">/*
|
||
<span class='line'>288</span> IE only!!
|
||
<span class='line'>289</span> http://blog.livedoor.jp/dankogai/archives/50952477.html DOM時代のdocument.write()
|
||
<span class='line'>290</span>
|
||
<span class='line'>291</span> if (typeof document == 'object')
|
||
<span class='line'>292</span> write = document.write;
|
||
<span class='line'>293</span> */</span><span class="WHIT">
|
||
<span class='line'>294</span>
|
||
<span class='line'>295</span> </span><span class="COMM">/*
|
||
<span class='line'>296</span> http://blog.taragana.com/index.php/archive/how-to-enable-windowstatus-in-firefox/
|
||
<span class='line'>297</span> window.status在firefox下默認是不能修改的。
|
||
<span class='line'>298</span> 可以通過工具->選項->網頁特性->啟用javascript->高級->把修改狀態欄文本打上勾就好了。
|
||
<span class='line'>299</span>
|
||
<span class='line'>300</span> Open about:config in browser and search for dom.disable_window_status_change. Change it to false.
|
||
<span class='line'>301</span> Additionally in Firefox v1.0, this can be changed via "Tools → Options → Web Features → Enable JavaScript / Advanced → Allow scripts to change status bar text"
|
||
<span class='line'>302</span> In Firefox v1.5, this can be changed via "Tools → Options → Content → Enable JavaScript / Advanced → Allow scripts to change status bar text"
|
||
<span class='line'>303</span> via MozillaZine; learnt the hard way.
|
||
<span class='line'>304</span> */</span><span class="WHIT">
|
||
<span class='line'>305</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">RollStatus</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">v</span><span class="PUNC">,</span><span class="NAME">from</span><span class="PUNC">,</span><span class="NAME">RollStatusL</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="COMM">//message,速度velocity,from where,unit length(基本上後兩者勿設定)</span><span class="WHIT">
|
||
<span class='line'>306</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="STRN">' '</span><span class="PUNC">;</span><span class="COMM">//間隔以s</span><span class="WHIT">
|
||
<span class='line'>307</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">RollStatusL</span><span class="PUNC">)</span><span class="NAME">RollStatusL</span><span class="PUNC">=</span><span class="NAME">m.length</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">s</span><span class="PUNC">+</span><span class="NAME">m</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">from</span><span class="PUNC">||</span><span class="NAME">from</span><span class="PUNC">>=</span><span class="NAME">RollStatusL</span><span class="PUNC">+</span><span class="NAME">s.length</span><span class="PUNC">)</span><span class="NAME">from</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>308</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">m</span><span class="PUNC">)</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">window.status</span><span class="PUNC">)</span><span class="NAME">RollStatus</span><span class="PUNC">(</span><span class="NAME">window.status</span><span class="PUNC">,</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m.slice</span><span class="PUNC">(</span><span class="NAME">from</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="NAME">window.status</span><span class="PUNC">&&</span><span class="NAME">m.length</span><span class="PUNC">></span><span class="NAME">L</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>309</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">L</span><span class="PUNC">=</span><span class="NUMB">99</span><span class="PUNC">,</span><span class="NAME">V</span><span class="PUNC">=</span><span class="NAME">v</span><span class="PUNC">||</span><span class="NUMB">999</span><span class="PUNC">;</span><span class="COMM">//L:least length</span><span class="WHIT">
|
||
<span class='line'>310</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">m.length</span><span class="PUNC"><</span><span class="NAME">L</span><span class="PUNC">)</span><span class="NAME">m</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">s</span><span class="PUNC">+</span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>311</span> </span><span class="WHIT"> </span><span class="NAME">window.status</span><span class="PUNC">=</span><span class="NAME">m.slice</span><span class="PUNC">(</span><span class="PUNC">++</span><span class="NAME">from</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>312</span> </span><span class="WHIT"> </span><span class="NAME">RollStatusS</span><span class="PUNC">=</span><span class="NAME">window.setTimeout</span><span class="PUNC">(</span><span class="STRN">'RollStatus("'</span><span class="PUNC">+</span><span class="NAME">m</span><span class="PUNC">+</span><span class="STRN">'",'</span><span class="PUNC">+</span><span class="NAME">V</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">from</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">RollStatusL</span><span class="PUNC">+</span><span class="STRN">');'</span><span class="PUNC">,</span><span class="NAME">V</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>313</span> </span><span class="WHIT"> </span><span class="COMM">//RollStatusS=window.setInterval('RollStatus("'+m+'",'+V+','+from+')',V)</span><span class="WHIT">
|
||
<span class='line'>314</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>315</span>
|
||
<span class='line'>316</span> </span><span class="COMM">// ↑copy from base.js</span><span class="WHIT">
|
||
<span class='line'>317</span>
|
||
<span class='line'>318</span>
|
||
<span class='line'>319</span> </span><span class="COMM">/* 預防hack:禁止鍵盤keyboard&滑鼠mouse輸入,可以再加上一層div於最上方以防止copy
|
||
<span class='line'>320</span> 下面一行調到檔案頭
|
||
<span class='line'>321</span> var disabledKM=0;
|
||
<span class='line'>322</span> */</span><span class="WHIT">
|
||
<span class='line'>323</span> </span><span class="COMM">//disableKM[generateCode.dLK]='disabledKM';</span><span class="WHIT">
|
||
<span class='line'>324</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">disableKM</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// s=1:回復,s=2:使螢幕亦無法捲動(對NS無效),m:message,輸入時發出警告</span><span class="WHIT">
|
||
<span class='line'>325</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>326</span> window.onerror=function(){return ture;};
|
||
<span class='line'>327</span> // 定義亦可用 function document.onmousedown(){..}
|
||
<span class='line'>328</span> document.onmousedown=document.oncontextmenu=document.onselectstart=document.ondragstart=function(e){return false;};
|
||
<span class='line'>329</span> // 印刷を禁止して
|
||
<span class='line'>330</span> window.onbeforeprint=function(){for(i=0;i<document.all.length;i++){if(document.all[i].style.visibility!="hidden"){document.all[i].style.visibility="hidden";document.all[i].id="elmid";}}};
|
||
<span class='line'>331</span> window.onafterprint=function(){for(i=0;i<document.all.length;i++){if(document.all[i].id=="elmid"){document.all[i].style.visibility="";}}};
|
||
<span class='line'>332</span> */</span><span class="WHIT">
|
||
<span class='line'>333</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">document.body</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>334</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>335</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">disabledKM</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">disabledKM</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>336</span>
|
||
<span class='line'>337</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">s</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>338</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">disabledKM</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>339</span> </span><span class="WHIT"> </span><span class="NAME">ondragstart</span><span class="PUNC">=</span><span class="NAME">document.body.Oondragstart</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>340</span> </span><span class="WHIT"> </span><span class="NAME">oncontextmenu</span><span class="PUNC">=</span><span class="NAME">document.body.Ooncontextmenu</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>341</span> </span><span class="WHIT"> </span><span class="NAME">onselectstart</span><span class="PUNC">=</span><span class="NAME">document.body.Oonselectstart</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>342</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">window.document.body</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>343</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">disabledKM</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="NAME">style.overflow</span><span class="PUNC">=</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.body.Ooverflow</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">?</span><span class="NAME">Ooverflow</span><span class="PUNC">:</span><span class="STRN">'auto'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>344</span> </span><span class="WHIT"> </span><span class="NAME">onmousedown</span><span class="PUNC">=</span><span class="NAME">window.Oonmousedown</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>345</span> </span><span class="WHIT"> </span><span class="NAME">onkeydown</span><span class="PUNC">=</span><span class="NAME">window.Oonkeydown</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>346</span> </span><span class="WHIT"> </span><span class="NAME">onmousedown</span><span class="PUNC">=</span><span class="NAME">document.Oonmousedown</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>347</span> </span><span class="WHIT"> </span><span class="NAME">onkeydown</span><span class="PUNC">=</span><span class="NAME">document.Oonkeydown</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>348</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>349</span> </span><span class="WHIT"> </span><span class="NAME">disabledKM</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>350</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>351</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>352</span>
|
||
<span class='line'>353</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">disabledKM</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">document.body</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// 已lock時不執行多餘的動作與覆蓋舊資訊</span><span class="WHIT">
|
||
<span class='line'>354</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="NAME">style.overflow</span><span class="PUNC">=</span><span class="STRN">'hidden'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>355</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.body.Ooverflow</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="NAME">style.overflow</span><span class="PUNC">=</span><span class="NAME">Ooverflow</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>356</span> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>357</span> </span><span class="COMM">// <body oncontextmenu="return false" ondragstart="return false" onselectstart="return false"></span><span class="WHIT">
|
||
<span class='line'>358</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">document.body</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 預防hack</span><span class="WHIT">
|
||
<span class='line'>359</span> </span><span class="WHIT"> </span><span class="COMM">//leftMargin=topMargin=rightMargin=bottomMargin=0; // 使body填滿視窗</span><span class="WHIT">
|
||
<span class='line'>360</span> </span><span class="WHIT"> </span><span class="NAME">document.body.Ooverflow</span><span class="PUNC">=</span><span class="NAME">style.overflow</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>361</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="NAME">style.overflow</span><span class="PUNC">=</span><span class="STRN">'hidden'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 使螢幕亦無法捲動</span><span class="WHIT">
|
||
<span class='line'>362</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">onselectstart</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">document.body.Oonselectstart</span><span class="PUNC">=</span><span class="NAME">onselectstart</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>363</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oncontextmenu</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">document.body.Ooncontextmenu</span><span class="PUNC">=</span><span class="NAME">oncontextmenu</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>364</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">ondragstart</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">document.body.Oondragstart</span><span class="PUNC">=</span><span class="NAME">ondragstart</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>365</span> </span><span class="WHIT"> </span><span class="NAME">ondragstart</span><span class="PUNC">=</span><span class="NAME">oncontextmenu</span><span class="PUNC">=</span><span class="NAME">onselectstart</span><span class="PUNC">=</span><span class="WHIT">
|
||
<span class='line'>366</span> </span><span class="WHIT"> </span><span class="COMM">//new Function("return false;");</span><span class="WHIT">
|
||
<span class='line'>367</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>368</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>369</span> </span><span class="WHIT"> </span><span class="COMM">// 不要在 document 对象中设置 expando 属性,在 window 对象上设置 expando 属性。</span><span class="WHIT">
|
||
<span class='line'>370</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>371</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">onmousedown</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">document.Oonmousedown</span><span class="PUNC">=</span><span class="NAME">onmousedown</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>372</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">onkeydown</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">document.Oonkeydown</span><span class="PUNC">=</span><span class="NAME">onkeydown</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>373</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>374</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">window.document</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>375</span> </span><span class="WHIT"> </span><span class="COMM">//ndblclick=</span><span class="WHIT">
|
||
<span class='line'>376</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">onmousedown</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">document.Oonmousedown</span><span class="PUNC">=</span><span class="NAME">onmousedown</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>377</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">onkeydown</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">document.Oonkeydown</span><span class="PUNC">=</span><span class="NAME">onkeydown</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>378</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>379</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>380</span> </span><span class="WHIT"> </span><span class="NAME">window.onmousedown</span><span class="PUNC">=</span><span class="NAME">window.onkeydown</span><span class="PUNC">=</span><span class="NAME">document.onmousedown</span><span class="PUNC">=</span><span class="NAME">document.onkeydown</span><span class="PUNC">=</span><span class="NAME">document.onContextMenu</span><span class="WHIT">
|
||
<span class='line'>381</span> </span><span class="WHIT"> </span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Function</span><span class="PUNC">(</span><span class="STRN">'e'</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>382</span> </span><span class="WHIT"> </span><span class="STRN">'if(window.navigator.appName=="Microsoft Internet Explorer"&&event.button!=1||window.navigator.appName=="Netscape"&&e.which!=1){'</span><span class="WHIT">
|
||
<span class='line'>383</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">?</span><span class="STRN">'alert('</span><span class="PUNC">+</span><span class="NAME">dQuote</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">');'</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'return false;}'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>384</span> </span><span class="COMM">/*
|
||
<span class='line'>385</span> 'if(window.navigator.appName=="Microsoft Internet Explorer"\
|
||
<span class='line'>386</span> &&event.button!=1||window.navigator.appName=="Netscape"&&e.which!=1){'+(m?'alert('+dQuote(m)+');':'')+'return false;}');
|
||
<span class='line'>387</span> */</span><span class="WHIT">
|
||
<span class='line'>388</span>
|
||
<span class='line'>389</span> </span><span class="WHIT"> </span><span class="COMM">// window.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN);</span><span class="WHIT">
|
||
<span class='line'>390</span> </span><span class="WHIT"> </span><span class="COMM">// window.onmousedown=function(e){if(e.which==1){window.captureEvents(Event.MOUSEMOVE);window.onmousemove=rf;}};</span><span class="WHIT">
|
||
<span class='line'>391</span> </span><span class="WHIT"> </span><span class="COMM">// window.onmouseup=function(e){if(e.which==1){window.releaseEvents(Event.MOUSEMOVE);window.onmousemove=null;}};</span><span class="WHIT">
|
||
<span class='line'>392</span> </span><span class="WHIT"> </span><span class="COMM">// Navigator 4.0x</span><span class="WHIT">
|
||
<span class='line'>393</span> </span><span class="WHIT"> </span><span class="COMM">// http://topic.csdn.net/t/20020125/13/498661.html</span><span class="WHIT">
|
||
<span class='line'>394</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">disabledKM</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">window.Event</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">window.captureEvents</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>395</span> </span><span class="WHIT"> </span><span class="NAME">window.captureEvents</span><span class="PUNC">(</span><span class="NAME">Event.MOUSEDOWN</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>396</span> </span><span class="WHIT"> </span><span class="NAME">window.captureEvents</span><span class="PUNC">(</span><span class="NAME">Event.KEYDOWN</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>397</span>
|
||
<span class='line'>398</span> </span><span class="WHIT"> </span><span class="NAME">disabledKM</span><span class="PUNC">=</span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>399</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>400</span>
|
||
<span class='line'>401</span>
|
||
<span class='line'>402</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>403</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>404</span> </span><span class="COMM">/**
|
||
<span class='line'>405</span> * toggle/swap display and visibility.
|
||
<span class='line'>406</span> * display:none or visibility:hidden.
|
||
<span class='line'>407</span> * TODO: computed style
|
||
<span class='line'>408</span> * @param element HTML element
|
||
<span class='line'>409</span> * @param {String|Number} type show or hidden or set the status type:
|
||
<span class='line'>410</span> * {Number} type: 0: hidden(→none), 1: show(→block), 2||undefined: switch, others: get status only with no change
|
||
<span class='line'>411</span> * {String} type: set CSS: display type: none, '', block, inline, list-item. 其他恐造成 error?
|
||
<span class='line'>412</span> * @return display status
|
||
<span class='line'>413</span> * @since 2010/4/1 10:24:43 rewrite
|
||
<span class='line'>414</span> * @see
|
||
<span class='line'>415</span> * http://www.w3schools.com/CSS/pr_class_visibility.asp
|
||
<span class='line'>416</span> * http://www.w3schools.com/css/pr_class_display.asp
|
||
<span class='line'>417</span> * http://www.javaeye.com/topic/140784
|
||
<span class='line'>418</span> * 通過element.style對象只能取得內聯的樣式,也就是說只能取得html標籤裡寫的屬性。
|
||
<span class='line'>419</span> * @requires [_.get_element],[_.get_style]
|
||
<span class='line'>420</span> * @memberOf CeL.net.web
|
||
<span class='line'>421</span> */</span><span class="WHIT">
|
||
<span class='line'>422</span> </span><span class="NAME">toggle_display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>423</span> </span><span class="WHIT"> </span><span class="COMM">// showObj(div);</span><span class="WHIT">
|
||
<span class='line'>424</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>425</span> </span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">_.get_element</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">_.get_element</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>426</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>427</span>
|
||
<span class='line'>428</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>429</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>430</span>
|
||
<span class='line'>431</span> </span><span class="WHIT"> </span><span class="COMM">// Opera 7.5 意外的沒有 tagName (-_-) 而 Firefox 也可能沒有此 property</span><span class="WHIT">
|
||
<span class='line'>432</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">tagName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">element.tagName</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">style</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element.style</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>433</span> </span><span class="WHIT"> </span><span class="NAME">v_value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="STRN">'visible'</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'hidden'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'collapse'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>434</span>
|
||
<span class='line'>435</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>436</span> </span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">style</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
|
||
<span class='line'>437</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_.get_style</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">_.get_style</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'display'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
|
||
<span class='line'>438</span> </span><span class="WHIT"> </span><span class="COMM">// style.display === '' 時預設為顯示</span><span class="WHIT">
|
||
<span class='line'>439</span> </span><span class="WHIT"> </span><span class="NAME">style.display</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT">
|
||
<span class='line'>440</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">element.visibility</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'visible'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>441</span>
|
||
<span class='line'>442</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'boolean'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>443</span> </span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>444</span>
|
||
<span class='line'>445</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>446</span> </span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">style</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">tagName</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'tr'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'collapse'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'hidden'</span><span class="WHIT">
|
||
<span class='line'>447</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">style</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tagName</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="STRN">'div'</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'iframe'</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'block'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'inline'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'visible'</span><span class="WHIT">
|
||
<span class='line'>448</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>449</span>
|
||
<span class='line'>450</span> </span><span class="WHIT"> </span><span class="COMM">// test .innerHTML</span><span class="WHIT">
|
||
<span class='line'>451</span>
|
||
<span class='line'>452</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('set display style to [' + type + ']');</span><span class="WHIT">
|
||
<span class='line'>453</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">style</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>454</span> </span><span class="WHIT"> </span><span class="NAME">style</span><span class="PUNC">[</span><span class="NAME">type</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">v_value</span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'visibility'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'display'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>455</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">v_value</span><span class="PUNC">)</span><span class="COMM">// &&!(tagName in {'iframe':1,'input':1})</span><span class="WHIT">
|
||
<span class='line'>456</span> </span><span class="WHIT"> </span><span class="NAME">element.visibility</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>457</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>458</span>
|
||
<span class='line'>459</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>460</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>461</span> </span><span class="COMM">//simpleWrite('a.txt',reduceCode([f,toggle,setObjValue]));</span><span class="WHIT">
|
||
<span class='line'>462</span> </span><span class="COMM">//for(var i in style)tt+=i+'='+document.getElementById("others").style[i]+"<br/>";document.write(tt);</span><span class="WHIT">
|
||
<span class='line'>463</span>
|
||
<span class='line'>464</span>
|
||
<span class='line'>465</span>
|
||
<span class='line'>466</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>467</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>468</span> </span><span class="COMM">/* http://blog.stevenlevithan.com/archives/faster-than-innerhtml
|
||
<span class='line'>469</span> You can use the above as el = replace_HTML(el, newHtml) instead of el.innerHTML = newHtml.
|
||
<span class='line'>470</span>
|
||
<span class='line'>471</span> .innerHTML=,document.createElement(→XML_node()
|
||
<span class='line'>472</span> .innerHTML='' → remove_all_child
|
||
<span class='line'>473</span>
|
||
<span class='line'>474</span>
|
||
<span class='line'>475</span> http://forum.moztw.org/viewtopic.php?t=17984&postdays=0&postorder=asc&start=15
|
||
<span class='line'>476</span> adoptNode() 會把現有的節點拿去用,ownerDocument 會被變更,被 adopt 的節點會從原來的 document 消失。
|
||
<span class='line'>477</span> importNode() 比較像是 cloneNode() 加上變更 ownerDocument。
|
||
<span class='line'>478</span> 以前因為 Gecko 沒有太嚴格,所以可以用 Ajax 取回一個 XML 文件並直接透過 responseXML 把裡面的節點當 HTML 節點一樣的插入現有的網頁。
|
||
<span class='line'>479</span> */</span><span class="WHIT">
|
||
<span class='line'>480</span> </span><span class="COMM">/**
|
||
<span class='line'>481</span> * replace HTML
|
||
<span class='line'>482</span> * @param o
|
||
<span class='line'>483</span> * @param html
|
||
<span class='line'>484</span> * @return
|
||
<span class='line'>485</span> * @memberOf CeL.net.web
|
||
<span class='line'>486</span> */</span><span class="WHIT">
|
||
<span class='line'>487</span> </span><span class="NAME">replace_HTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">html</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>488</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>489</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>490</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>491</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>492</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>493</span> </span><span class="WHIT"> </span><span class="COMM">/*@cc_on // Pure innerHTML is slightly faster in IE
|
||
<span class='line'>494</span> o.innerHTML=html||'';
|
||
<span class='line'>495</span> return o;
|
||
<span class='line'>496</span> @*/</span><span class="WHIT">
|
||
<span class='line'>497</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o.cloneNode</span><span class="PUNC">(</span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>498</span> </span><span class="WHIT"> </span><span class="NAME">n.innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">html</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>499</span> </span><span class="WHIT"> </span><span class="NAME">o.parentNode.replaceChild</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>500</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>501</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.err</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>502</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>503</span> </span><span class="WHIT"> </span><span class="COMM">// Since we just removed the old element from the DOM, return a reference to the new element, which can be used to restore variable references.</span><span class="WHIT">
|
||
<span class='line'>504</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>505</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>506</span>
|
||
<span class='line'>507</span> </span><span class="COMM">/*
|
||
<span class='line'>508</span> 使用.firstChild或.lastChild須注意此node可能是text node,不能appendChild。須以.nodeType判別。
|
||
<span class='line'>509</span>
|
||
<span class='line'>510</span> http://msdn2.microsoft.com/zh-tw/library/system.xml.xmlnode.removechild(VS.80).aspx
|
||
<span class='line'>511</span> 繼承者注意事項 在衍生類別中覆寫 RemoveChild 時,為了要正確引發事件,您必須呼叫基底類別的 RemoveChild 方法。
|
||
<span class='line'>512</span>
|
||
<span class='line'>513</span> removeAllChild[generateCode.dLK]='replace_HTML';
|
||
<span class='line'>514</span> function removeAllChild(o){
|
||
<span class='line'>515</span> //return removeNode(o,1);
|
||
<span class='line'>516</span>
|
||
<span class='line'>517</span> // http://blog.stevenlevithan.com/archives/faster-than-innerhtml
|
||
<span class='line'>518</span> if(typeof o=='string')o=document.getElementById(o);
|
||
<span class='line'>519</span> if(!o||typeof o!='object')return;
|
||
<span class='line'>520</span> o.parentNode.replaceChild(o.cloneNode(false),o);
|
||
<span class='line'>521</span> return o;
|
||
<span class='line'>522</span> }
|
||
<span class='line'>523</span>
|
||
<span class='line'>524</span> http://www.webreference.com/js/column43/replace.html
|
||
<span class='line'>525</span> The replaceNode method is much more intuitive than the removeNode method. While the removeNode method just removes the specified element and makes its descendents children of their grandfather, the replaceNode method deletes the whole subtree that is rooted at the specified element, and substitutes it with a new element.
|
||
<span class='line'>526</span> node_want_to_replace.removeNode(new_node)
|
||
<span class='line'>527</span> */</span><span class="WHIT">
|
||
<span class='line'>528</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>529</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>530</span> </span><span class="COMM">/**
|
||
<span class='line'>531</span> * 移除 node.
|
||
<span class='line'>532</span> * TODO:
|
||
<span class='line'>533</span> * also remove event handlers
|
||
<span class='line'>534</span> * @param o
|
||
<span class='line'>535</span> * @param tag tag===1: only child, undefined: remove only self, others: only <tag> child
|
||
<span class='line'>536</span> * @return
|
||
<span class='line'>537</span> * @memberOf CeL.net.web
|
||
<span class='line'>538</span> */</span><span class="WHIT">
|
||
<span class='line'>539</span> </span><span class="NAME">remove_node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">remove_node</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>540</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">remove_node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>541</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>542</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>543</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>544</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>545</span>
|
||
<span class='line'>546</span> </span><span class="WHIT"> </span><span class="COMM">// remove child</span><span class="WHIT">
|
||
<span class='line'>547</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>548</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>549</span> </span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tag.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>550</span>
|
||
<span class='line'>551</span> </span><span class="WHIT"> </span><span class="COMM">// safer: if you have any asynchronous events going. But node.hasChildNodes() will always do an evaluation.</span><span class="WHIT">
|
||
<span class='line'>552</span> </span><span class="WHIT"> </span><span class="COMM">//while(o.hasChildNodes()&&(i=o.firstChild))o.removeChild(i);</span><span class="WHIT">
|
||
<span class='line'>553</span>
|
||
<span class='line'>554</span> </span><span class="WHIT"> </span><span class="COMM">// don't use for()</span><span class="WHIT">
|
||
<span class='line'>555</span> </span><span class="WHIT"> </span><span class="COMM">// http://weblogs.macromedia.com/mesh/archives/2006/01/removing_html_e.html</span><span class="WHIT">
|
||
<span class='line'>556</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: 直接用 replaceNode 就不用 recursion</span><span class="WHIT">
|
||
<span class='line'>557</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o.childNodes.length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>558</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>559</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">o.childNodes</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>560</span> </span><span class="WHIT"> </span><span class="COMM">// _f(o.childNodes[i],tag), // TODO: 會有問題</span><span class="WHIT">
|
||
<span class='line'>561</span> </span><span class="WHIT"> </span><span class="NAME">o.removeChild</span><span class="PUNC">(</span><span class="NAME">o.childNodes</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>562</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>563</span>
|
||
<span class='line'>564</span> </span><span class="WHIT"> </span><span class="COMM">// remove self</span><span class="WHIT">
|
||
<span class='line'>565</span> </span><span class="WHIT"> </span><span class="COMM">// 測試 o.parentNode: 預防輸入的o為create出來的</span><span class="WHIT">
|
||
<span class='line'>566</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o.parentNode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">i.removeChild</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>567</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>568</span>
|
||
<span class='line'>569</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>570</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>571</span> </span><span class="NAME">remove_all_child</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.replace_HTML</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>572</span>
|
||
<span class='line'>573</span>
|
||
<span class='line'>574</span>
|
||
<span class='line'>575</span>
|
||
<span class='line'>576</span>
|
||
<span class='line'>577</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>578</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>579</span> </span><span class="COMM">/**
|
||
<span class='line'>580</span> * set/get/remove attribute of a element<br/>
|
||
<span class='line'>581</span> * in IE: setAttribute does not work when used with the style attribute (or with event handlers, for that matter).
|
||
<span class='line'>582</span> * @param _e element
|
||
<span class='line'>583</span> * @param propertyO attributes object (array if you just want to get)
|
||
<span class='line'>584</span> * @return
|
||
<span class='line'>585</span> * @requires split_String_to_Object
|
||
<span class='line'>586</span> * @see
|
||
<span class='line'>587</span> * setAttribute,getAttribute,removeAttribute
|
||
<span class='line'>588</span> * http://www.quirksmode.org/blog/archives/2006/04/ie_7_and_javasc.html
|
||
<span class='line'>589</span> * @since 2006/12/10 21:25 分離 separate from XML_node()
|
||
<span class='line'>590</span> * @memberOf CeL.net.web
|
||
<span class='line'>591</span> */</span><span class="WHIT">
|
||
<span class='line'>592</span> </span><span class="NAME">set_attribute</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>593</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">_e</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>594</span> </span><span class="WHIT"> </span><span class="NAME">_e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">_.get_element</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">_.get_element</span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>595</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>596</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_e</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">propertyO</span><span class="COMM">/* ||_e.nodeType==3/* TEXT_NODE */</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>597</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>598</span>
|
||
<span class='line'>599</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_l</span><span class="PUNC">,</span><span class="NAME">_m</span><span class="PUNC">,</span><span class="NAME">_g</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>600</span> </span><span class="WHIT"> </span><span class="COMM">// Namespaces:SVG,MathML,XHTML,XLink</span><span class="WHIT">
|
||
<span class='line'>601</span> </span><span class="WHIT"> </span><span class="NAME">_N</span><span class="PUNC">=</span><span class="NAME">_.new_node.ns</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>602</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>603</span> </span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/[=:]/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">propertyO</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">split_String_to_Object</span><span class="PUNC">(</span><span class="NAME">propertyO</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>604</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">propertyO.split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>605</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">propertyO</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>606</span> </span><span class="WHIT"> </span><span class="NAME">_g</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">propertyO.length</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>607</span> </span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">split_String_to_Object</span><span class="PUNC">(</span><span class="NAME">propertyO.join</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>608</span>
|
||
<span class='line'>609</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_l</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>610</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_l</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'class'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="STRN">'className'</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>611</span> </span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'className'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="STRN">'class'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>612</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_g</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_l</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>613</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_l</span><span class="PUNC">==</span><span class="STRN">'className'</span><span class="PUNC">||</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_g</span><span class="PUNC">)</span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">_e</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">_e</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="COMM">//_l=='id'||</span><span class="WHIT">
|
||
<span class='line'>614</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>615</span> XML 中id不能以setAttribute設定。
|
||
<span class='line'>616</span> class不能以setAttribute設定@IE。
|
||
<span class='line'>617</span> http://www.quirksmode.org/bugreports/archives/2005/03/setAttribute_does_not_work_in_IE_when_used_with_th.html
|
||
<span class='line'>618</span> IE ignores the "class" setting, and Mozilla will have both a "class" and "className" attribute defined
|
||
<span class='line'>619</span> */</span><span class="WHIT">
|
||
<span class='line'>620</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_e.setAttributeNS</span><span class="WHIT">
|
||
<span class='line'>621</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_l.match</span><span class="PUNC">(</span><span class="REGX">/^(.+):([^:]+)$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>622</span> </span><span class="WHIT"> </span><span class="NAME">_m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>623</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_m.indexOf</span><span class="PUNC">(</span><span class="STRN">'://'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">_N</span><span class="PUNC">[</span><span class="NAME">_m.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>624</span> </span><span class="WHIT"> </span><span class="NAME">_m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'http://www.w3.org/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_N</span><span class="PUNC">[</span><span class="NAME">_m.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>625</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_g</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>626</span> </span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_e.getAttributeNS</span><span class="PUNC">(</span><span class="NAME">_m</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>627</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>628</span> </span><span class="WHIT"> </span><span class="NAME">_e.setAttributeNS</span><span class="PUNC">(</span><span class="NAME">_m</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">// try{_e.setAttributeNS(_m,_l,propertyO[_l]);}catch(e){alert('set_attribute:</span><span class="WHIT">
|
||
<span class='line'>629</span> </span><span class="WHIT"> </span><span class="COMM">// Error!');}</span><span class="WHIT">
|
||
<span class='line'>630</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_g</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>631</span> </span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_e.getAttribute</span><span class="PUNC">(</span><span class="NAME">_l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>632</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>633</span> </span><span class="WHIT"> </span><span class="NAME">_e.setAttribute</span><span class="PUNC">(</span><span class="NAME">_l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NAME">_l</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">// _e.setAttributeNS?_e.setAttributeNS(null,_l,propertyO[_l]):_e.setAttribute(_l,propertyO[_l]);</span><span class="WHIT">
|
||
<span class='line'>634</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>635</span>
|
||
<span class='line'>636</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">_g</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">[</span><span class="NAME">_g</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>637</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>638</span>
|
||
<span class='line'>639</span>
|
||
<span class='line'>640</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>641</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>642</span> </span><span class="COMM">/**
|
||
<span class='line'>643</span> * append children node to specified element
|
||
<span class='line'>644</span> * @param node node / node id
|
||
<span class='line'>645</span> * @param child_list children node array
|
||
<span class='line'>646</span> * @return
|
||
<span class='line'>647</span> * @since 2007/1/20 14:12
|
||
<span class='line'>648</span> * @memberOf CeL.net.web
|
||
<span class='line'>649</span> */</span><span class="WHIT">
|
||
<span class='line'>650</span> </span><span class="NAME">add_node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">add_node</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>651</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">add_node</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>652</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>653</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">_.get_element</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">_.get_element</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="WHIT">
|
||
<span class='line'>654</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>655</span>
|
||
<span class='line'>656</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">arguments.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>657</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arguments.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">_j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">_j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>658</span> </span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NAME">_j</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>659</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>660</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>661</span>
|
||
<span class='line'>662</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">child_list</span><span class="WHIT">
|
||
<span class='line'>663</span> </span><span class="WHIT"> </span><span class="COMM">// || node.nodeType == 3/* TEXT_NODE */</span><span class="WHIT">
|
||
<span class='line'>664</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>665</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>666</span>
|
||
<span class='line'>667</span> </span><span class="WHIT"> </span><span class="COMM">// 預防 RegExp 等,需要 toString()</span><span class="WHIT">
|
||
<span class='line'>668</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">child_list</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>669</span> </span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>670</span>
|
||
<span class='line'>671</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>672</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">child_list</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>673</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">child_list</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="WHIT">
|
||
<span class='line'>674</span> </span><span class="WHIT"> </span><span class="COMM">// && child_list.length</span><span class="WHIT">
|
||
<span class='line'>675</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>676</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">child_list.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">_j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">_j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>677</span> </span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="PUNC">[</span><span class="NAME">_j</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>678</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>679</span> </span><span class="WHIT"> </span><span class="NAME">node.appendChild</span><span class="PUNC">(</span><span class="NAME">child_list</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>680</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>681</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>682</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">child_list</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>683</span> </span><span class="WHIT"> </span><span class="COMM">// child_list=child_list.toString();</span><span class="WHIT">
|
||
<span class='line'>684</span> </span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>685</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>686</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">tag_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>687</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag_name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'textarea'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">tag_name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'select'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">tag_name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'option'</span><span class="WHIT">
|
||
<span class='line'>688</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag_name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'input'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">node.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'text'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>689</span> </span><span class="WHIT"> </span><span class="NAME">node.value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>690</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag_name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'option'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>691</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">node.value</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>692</span> </span><span class="WHIT"> </span><span class="NAME">node.value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>693</span> </span><span class="WHIT"> </span><span class="NAME">node.innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>694</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">child_list.indexOf</span><span class="PUNC">(</span><span class="STRN">'<'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>695</span> </span><span class="WHIT"> </span><span class="COMM">// may cause error: -2146827687 未知的執行階段錯誤 e.g., XML_node('a',0,0,[XML_node('a'),'<br/>']);</span><span class="WHIT">
|
||
<span class='line'>696</span> </span><span class="WHIT"> </span><span class="COMM">//try{</span><span class="WHIT">
|
||
<span class='line'>697</span> </span><span class="WHIT"> </span><span class="NAME">node.innerHTML</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">child_list</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>698</span> </span><span class="WHIT"> </span><span class="COMM">//}catch(e){node.appendChild(XML_node('span',0,0,child_list));}</span><span class="WHIT">
|
||
<span class='line'>699</span>
|
||
<span class='line'>700</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>701</span> </span><span class="WHIT"> </span><span class="COMM">//try{</span><span class="WHIT">
|
||
<span class='line'>702</span> </span><span class="WHIT"> </span><span class="NAME">node.appendChild</span><span class="PUNC">(</span><span class="NAME">document.createTextNode</span><span class="PUNC">(</span><span class="NAME">child_list</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>703</span> </span><span class="WHIT"> </span><span class="COMM">//}catch(e){alert(e.description);}</span><span class="WHIT">
|
||
<span class='line'>704</span>
|
||
<span class='line'>705</span> </span><span class="WHIT"> </span><span class="COMM">// else alert('add_node: Error insert contents:\n['+child_list+']');</span><span class="WHIT">
|
||
<span class='line'>706</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>707</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>708</span>
|
||
<span class='line'>709</span>
|
||
<span class='line'>710</span> </span><span class="COMM">/*
|
||
<span class='line'>711</span>
|
||
<span class='line'>712</span> var alias={
|
||
<span class='line'>713</span> // 'child' || 'c' || '$' || '0' || ..
|
||
<span class='line'>714</span> $:'childNode',
|
||
<span class='line'>715</span> // class: 'className' || 'c' ..
|
||
<span class='line'>716</span> c:'className'
|
||
<span class='line'>717</span> s:'style'
|
||
<span class='line'>718</span> };
|
||
<span class='line'>719</span>
|
||
<span class='line'>720</span> 輸入 ( [{tag1:{attb:attb_val,child:[inner objects]}}, {tag2:{}}, 'br'], insertBeforeO)
|
||
<span class='line'>721</span> e.g.,
|
||
<span class='line'>722</span> ([
|
||
<span class='line'>723</span> {
|
||
<span class='line'>724</span> p:[span:'>>test<<'],
|
||
<span class='line'>725</span> id:'a',
|
||
<span class='line'>726</span> c:'cls',
|
||
<span class='line'>727</span> s:{color:'#123'}
|
||
<span class='line'>728</span> },
|
||
<span class='line'>729</span> // width:12 === width:'12px'
|
||
<span class='line'>730</span> {
|
||
<span class='line'>731</span> span:['<<test2>>','text'],
|
||
<span class='line'>732</span> s:{color:'',width:12}
|
||
<span class='line'>733</span> },
|
||
<span class='line'>734</span> '<<test3>>',
|
||
<span class='line'>735</span> {'hr':0},
|
||
<span class='line'>736</span> {'br':0},
|
||
<span class='line'>737</span> {
|
||
<span class='line'>738</span> $:tag_name,
|
||
<span class='line'>739</span> tag_name:[]
|
||
<span class='line'>740</span> },
|
||
<span class='line'>741</span> {
|
||
<span class='line'>742</span> tag_ns:0,
|
||
<span class='line'>743</span> ns:'http://~'
|
||
<span class='line'>744</span> }
|
||
<span class='line'>745</span> ], insertSetting)
|
||
<span class='line'>746</span>
|
||
<span class='line'>747</span> insertSetting:
|
||
<span class='line'>748</span> (null) just create & return the node
|
||
<span class='line'>749</span> 以下:===0 則設成 document.body
|
||
<span class='line'>750</span> parent/id appendChild
|
||
<span class='line'>751</span> [refO,0-4] 0:appendChild (add as lastChild), 1: add as firstChild, 2: add as nextSibling, 3: add as priviusSibling, 4: add as parent
|
||
<span class='line'>752</span>
|
||
<span class='line'>753</span>
|
||
<span class='line'>754</span> */</span><span class="WHIT">
|
||
<span class='line'>755</span> </span><span class="COMM">//[{tag1:{attb:attb_val,child:[inner objects]}}, {tag2:{}}, 'br'];</span><span class="WHIT">
|
||
<span class='line'>756</span>
|
||
<span class='line'>757</span>
|
||
<span class='line'>758</span>
|
||
<span class='line'>759</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>760</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>761</span> </span><span class="COMM">/**
|
||
<span class='line'>762</span> * 創建新的 DOM 節點(node)。
|
||
<span class='line'>763</span> * createNode() 的功能補充加強版。
|
||
<span class='line'>764</span> * TODO: 分割功能(set_attrib, add_child, ..), 簡化
|
||
<span class='line'>765</span> * @param {Object|Array} nodes node structure
|
||
<span class='line'>766</span> * @param {String|Array|HTMLElement} [layer] where to layer this node. e.g., parent node
|
||
<span class='line'>767</span> * @return {HTMLElement} new node created
|
||
<span class='line'>768</span> * @since 2010/6/21 13:45:02
|
||
<span class='line'>769</span> */</span><span class="WHIT">
|
||
<span class='line'>770</span> </span><span class="NAME">new_node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">nodes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>771</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.new_node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>772</span> </span><span class="WHIT"> </span><span class="COMM">// parent: parent node of layer or layer.firstChild</span><span class="WHIT">
|
||
<span class='line'>773</span> </span><span class="WHIT"> </span><span class="NAME">parent</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>774</span> </span><span class="WHIT"> </span><span class="NAME">children</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>775</span> </span><span class="WHIT"> </span><span class="NAME">handle</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.handle</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>776</span>
|
||
<span class='line'>777</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">is_DOM</span><span class="PUNC">(</span><span class="STRN">'document'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>778</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">document.createElement</span><span class="WHIT">
|
||
<span class='line'>779</span> </span><span class="WHIT"> </span><span class="COMM">//&& !document.createElementNS</span><span class="WHIT">
|
||
<span class='line'>780</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>781</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'new_node: DOM error? Cannot create node ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'].'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>782</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>783</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>784</span>
|
||
<span class='line'>785</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>786</span> </span><span class="WHIT"> </span><span class="COMM">//.toString();</span><span class="WHIT">
|
||
<span class='line'>787</span> </span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>788</span>
|
||
<span class='line'>789</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Object</span><span class="PUNC">(</span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>790</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nodes.$</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'className'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ignore</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>791</span> </span><span class="WHIT"> </span><span class="COMM">// tag</span><span class="WHIT">
|
||
<span class='line'>792</span> </span><span class="WHIT"> </span><span class="NAME">$</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>793</span> </span><span class="WHIT"> </span><span class="COMM">// attrib</span><span class="WHIT">
|
||
<span class='line'>794</span> </span><span class="WHIT"> </span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT">
|
||
<span class='line'>795</span> </span><span class="COMM">/*
|
||
<span class='line'>796</span> // namespace
|
||
<span class='line'>797</span> NS : null,
|
||
<span class='line'>798</span> // class
|
||
<span class='line'>799</span> C : null,
|
||
<span class='line'>800</span> // style
|
||
<span class='line'>801</span> S : null
|
||
<span class='line'>802</span> */</span><span class="WHIT">
|
||
<span class='line'>803</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>804</span>
|
||
<span class='line'>805</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>806</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>807</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">node</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ignore</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>808</span> </span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>809</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>810</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>811</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>812</span> </span><span class="WHIT"> </span><span class="COMM">// 0: just set attributes</span><span class="WHIT">
|
||
<span class='line'>813</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_.is_element_node</span><span class="PUNC">(</span><span class="NAME">layer</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>814</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'new_node: There is no tag and the layer is NOT a HTML Element!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>815</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>816</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>817</span> </span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>818</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>819</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>820</span>
|
||
<span class='line'>821</span> </span><span class="WHIT"> </span><span class="COMM">// set/create node</span><span class="WHIT">
|
||
<span class='line'>822</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_.is_HTML_element</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>823</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>824</span>
|
||
<span class='line'>825</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>826</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.err</span><span class="PUNC">(</span><span class="STRN">'new_node: Error create tag: ['</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">']['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>827</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>828</span>
|
||
<span class='line'>829</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>830</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">'NS'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>831</span> </span><span class="WHIT"> </span><span class="NAME">ignore.NS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>832</span> </span><span class="WHIT"> </span><span class="NAME">ns</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nodes.NS</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>833</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tag.match</span><span class="PUNC">(</span><span class="REGX">/^(.+):([^:]+)$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>834</span> </span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>835</span>
|
||
<span class='line'>836</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>837</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ns</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">document.createElementNS</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>838</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ns</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.ns</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>839</span> </span><span class="WHIT"> </span><span class="NAME">ns</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'http://www.w3.org/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">ns</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>840</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElementNS</span><span class="PUNC">(</span><span class="NAME">ns</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>841</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>842</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="NAME">ns</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">':'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>843</span> </span><span class="WHIT"> </span><span class="COMM">//: document.createTextNode();</span><span class="WHIT">
|
||
<span class='line'>844</span> </span><span class="WHIT"> </span><span class="COMM">// 由後面判定。</span><span class="WHIT">
|
||
<span class='line'>845</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">[</span><span class="NAME">tag</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>846</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>847</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.err</span><span class="PUNC">(</span><span class="STRN">'new_node: Error create tag: ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>848</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>849</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>850</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>851</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>852</span>
|
||
<span class='line'>853</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_.is_element_node</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>854</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.setAttributeNS</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>855</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Function</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>856</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>857</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: _.add_listener();</span><span class="WHIT">
|
||
<span class='line'>858</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>859</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>860</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n.match</span><span class="PUNC">(</span><span class="REGX">/^(.+):([^:]+)$/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>861</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_n</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>862</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_n</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_n</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>863</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_n</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>864</span> </span><span class="WHIT"> </span><span class="NAME">node.setAttributeNS</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>865</span> </span><span class="WHIT"> </span><span class="NAME">_n</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_s.ns</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'http://www.w3.org/'</span><span class="WHIT">
|
||
<span class='line'>866</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_s.ns</span><span class="PUNC">[</span><span class="NAME">_n</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>867</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>868</span> </span><span class="WHIT"> </span><span class="NAME">node.setAttribute</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>869</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>870</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Function</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>871</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>872</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>873</span> </span><span class="WHIT"> </span><span class="NAME">node.setAttribute</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>874</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>875</span>
|
||
<span class='line'>876</span> </span><span class="WHIT"> </span><span class="COMM">// 對常用的特別處理</span><span class="WHIT">
|
||
<span class='line'>877</span> </span><span class="WHIT"> </span><span class="COMM">// class name</span><span class="WHIT">
|
||
<span class='line'>878</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>879</span> XML 中id不能以setAttribute設定。
|
||
<span class='line'>880</span> class不能以setAttribute設定@IE。
|
||
<span class='line'>881</span> http://www.quirksmode.org/bugreports/archives/2005/03/setAttribute_does_not_work_in_IE_when_used_with_th.html
|
||
<span class='line'>882</span> IE ignores the "class" setting, and Mozilla will have both a "class" and "className" attribute defined
|
||
<span class='line'>883</span> */</span><span class="WHIT">
|
||
<span class='line'>884</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'class'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'C'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>885</span> </span><span class="WHIT"> </span><span class="NAME">ignore</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>886</span> </span><span class="WHIT"> </span><span class="NAME">node.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>887</span>
|
||
<span class='line'>888</span> </span><span class="WHIT"> </span><span class="COMM">// IE 需要先 appendChild 才能操作 style,moz不用..??</span><span class="WHIT">
|
||
<span class='line'>889</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.peterbe.com/plog/setAttribute-style-IE</span><span class="WHIT">
|
||
<span class='line'>890</span> </span><span class="WHIT"> </span><span class="COMM">// 或需要將 font-size -> fontSize 之類?</span><span class="WHIT">
|
||
<span class='line'>891</span> </span><span class="WHIT"> </span><span class="COMM">// IE6 (no firefox or IE7~) 可設定:</span><span class="WHIT">
|
||
<span class='line'>892</span> </span><span class="WHIT"> </span><span class="COMM">// oNewDiv.style.setAttribute('border', '1px solid #000');</span><span class="WHIT">
|
||
<span class='line'>893</span> </span><span class="WHIT"> </span><span class="COMM">// oNewDiv.style.setAttribute('backgroundColor', '#fff');</span><span class="WHIT">
|
||
<span class='line'>894</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'style'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'S'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>895</span> </span><span class="WHIT"> </span><span class="NAME">ignore</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>896</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>897</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">style</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.style</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>898</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>899</span> </span><span class="WHIT"> </span><span class="NAME">style.cssText</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>900</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Object</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>901</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>902</span> </span><span class="WHIT"> </span><span class="COMM">// is_IE?"styleFloat":"cssFloat"</span><span class="WHIT">
|
||
<span class='line'>903</span> </span><span class="WHIT"> </span><span class="NAME">style</span><span class="PUNC">[</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'float'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'cssFloat'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">style</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'cssFloat'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'styleFloat'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>904</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>905</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'new_node: Error set style: ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">styleO</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>906</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>907</span>
|
||
<span class='line'>908</span> </span><span class="WHIT"> </span><span class="COMM">// children nodes</span><span class="WHIT">
|
||
<span class='line'>909</span> </span><span class="WHIT"> </span><span class="NAME">ignore</span><span class="PUNC">[</span><span class="NAME">tag</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>910</span> </span><span class="WHIT"> </span><span class="NAME">children</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">[</span><span class="NAME">tag</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>911</span>
|
||
<span class='line'>912</span> </span><span class="WHIT"> </span><span class="COMM">// 自動作 list 的轉換</span><span class="WHIT">
|
||
<span class='line'>913</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>914</span> </span><span class="WHIT"> </span><span class="NAME">ol</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>915</span> </span><span class="WHIT"> </span><span class="NAME">ul</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT">
|
||
<span class='line'>916</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">library_namespace.is_Array</span><span class="PUNC">(</span><span class="NAME">children</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>917</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>918</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">children.length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">change</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>919</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>920</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">children</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>921</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT">
|
||
<span class='line'>922</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>923</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">library_namespace.is_Object</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>924</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c.$</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>925</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>926</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>927</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>928</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'li'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>929</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>930</span>
|
||
<span class='line'>931</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>932</span> </span><span class="WHIT"> </span><span class="NAME">change</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>933</span> </span><span class="WHIT"> </span><span class="NAME">o.push</span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>934</span> </span><span class="WHIT"> </span><span class="NAME">li</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT">
|
||
<span class='line'>935</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>936</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>937</span>
|
||
<span class='line'>938</span> </span><span class="WHIT"> </span><span class="COMM">// 盡量別動到原來的</span><span class="WHIT">
|
||
<span class='line'>939</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">change</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>940</span> </span><span class="WHIT"> </span><span class="NAME">children</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>941</span>
|
||
<span class='line'>942</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'select'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">library_namespace.is_Object</span><span class="PUNC">(</span><span class="NAME">children</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>943</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>944</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">children</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>945</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>946</span>
|
||
<span class='line'>947</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'option'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>948</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>949</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">children</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>950</span> </span><span class="WHIT"> </span><span class="NAME">o.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>951</span> </span><span class="WHIT"> </span><span class="NAME">option</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">children</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>952</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT">
|
||
<span class='line'>953</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>954</span>
|
||
<span class='line'>955</span> </span><span class="WHIT"> </span><span class="COMM">// 盡量別動到原來的</span><span class="WHIT">
|
||
<span class='line'>956</span> </span><span class="WHIT"> </span><span class="NAME">children</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>957</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>958</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>959</span>
|
||
<span class='line'>960</span>
|
||
<span class='line'>961</span> </span><span class="WHIT"> </span><span class="COMM">// attributes</span><span class="WHIT">
|
||
<span class='line'>962</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="STRN">'A'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>963</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nodes.A</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>964</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>965</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">split_String_to_Object</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>966</span>
|
||
<span class='line'>967</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>968</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>969</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>970</span>
|
||
<span class='line'>971</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>972</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ignore</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>973</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('new_node: set attribute ['+n+'] = ['+nodes[n]+']'),</span><span class="WHIT">
|
||
<span class='line'>974</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>975</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('new_node: get attribute ['+n+'] = ['+node.getAttribute(n)+']');</span><span class="WHIT">
|
||
<span class='line'>976</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>977</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">_.is_HTML_element</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>978</span> </span><span class="WHIT"> </span><span class="NAME">show_node</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>979</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'new_node: node is not a HTML Element!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>980</span>
|
||
<span class='line'>981</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">library_namespace.is_Array</span><span class="PUNC">(</span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>982</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">nodes.nodeType</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>983</span> </span><span class="WHIT"> </span><span class="COMM">// for Safari: library_namespace.is_Array(nodes)</span><span class="WHIT">
|
||
<span class='line'>984</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>985</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'new_node: Unknown nodes ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>986</span>
|
||
<span class='line'>987</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>988</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>989</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>990</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>991</span>
|
||
<span class='line'>992</span>
|
||
<span class='line'>993</span> </span><span class="WHIT"> </span><span class="COMM">// layer 處理: 插入document中。</span><span class="WHIT">
|
||
<span class='line'>994</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>995</span> </span><span class="WHIT"> </span><span class="COMM">// 正規化 layer</span><span class="WHIT">
|
||
<span class='line'>996</span> </span><span class="WHIT"> </span><span class="COMM">// for_each: type→deal function</span><span class="WHIT">
|
||
<span class='line'>997</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Function</span><span class="PUNC">(</span><span class="NAME">layer</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>998</span> </span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>999</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1000</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Array</span><span class="PUNC">(</span><span class="NAME">layer</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1001</span> </span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1002</span>
|
||
<span class='line'>1003</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">layer</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1004</span> </span><span class="WHIT"> </span><span class="NAME">layer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.body</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1005</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1006</span> </span><span class="WHIT"> </span><span class="NAME">layer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.get_element</span><span class="PUNC">(</span><span class="NAME">layer</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1007</span> </span><span class="WHIT"> </span><span class="COMM">// [object HTMLLIElement]</span><span class="WHIT">
|
||
<span class='line'>1008</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_.is_element_node</span><span class="PUNC">(</span><span class="NAME">layer</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1009</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.warn('is_element_node: ' + _.is_element_node),</span><span class="WHIT">
|
||
<span class='line'>1010</span> </span><span class="WHIT"> </span><span class="NAME">show_node</span><span class="PUNC">(</span><span class="NAME">layer</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1011</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'new_node: layer is not a HTML Element!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1012</span>
|
||
<span class='line'>1013</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">layer.firstChild</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1014</span> </span><span class="WHIT"> </span><span class="COMM">// add as firstChild of layer</span><span class="WHIT">
|
||
<span class='line'>1015</span> </span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">handle</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1016</span>
|
||
<span class='line'>1017</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">5</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1018</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">layer.parentNode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1019</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1020</span> </span><span class="WHIT"> </span><span class="COMM">// add as nextSibling of layer</span><span class="WHIT">
|
||
<span class='line'>1021</span> </span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">handle</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1022</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1023</span> </span><span class="WHIT"> </span><span class="COMM">// add as priviusSibling of layer</span><span class="WHIT">
|
||
<span class='line'>1024</span> </span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">handle</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1025</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>1026</span> </span><span class="WHIT"> </span><span class="COMM">// if (f == 4)</span><span class="WHIT">
|
||
<span class='line'>1027</span> </span><span class="WHIT"> </span><span class="COMM">// add as parent of layer</span><span class="WHIT">
|
||
<span class='line'>1028</span> </span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">handle</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1029</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>1030</span> </span><span class="WHIT"> </span><span class="COMM">// 輸入的 layer 為create出來的?</span><span class="WHIT">
|
||
<span class='line'>1031</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'new_node: No parent node found!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1032</span>
|
||
<span class='line'>1033</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_.is_element_node</span><span class="PUNC">(</span><span class="NAME">layer</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1034</span> </span><span class="WHIT"> </span><span class="COMM">// 若輸入 [id, null] 則先清空,相當於 replace</span><span class="WHIT">
|
||
<span class='line'>1035</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1036</span> </span><span class="WHIT"> </span><span class="NAME">layer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.remove_all_child</span><span class="PUNC">(</span><span class="NAME">layer</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1037</span> </span><span class="WHIT"> </span><span class="COMM">// appendChild (add as lastChild)</span><span class="WHIT">
|
||
<span class='line'>1038</span> </span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">handle</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1039</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1040</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1041</span>
|
||
<span class='line'>1042</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1043</span>
|
||
<span class='line'>1044</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">library_namespace.is_Function</span><span class="PUNC">(</span><span class="NAME">for_each</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1045</span> </span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1046</span>
|
||
<span class='line'>1047</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Array</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1048</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1049</span> </span><span class="WHIT"> </span><span class="COMM">// 不宜個個重新呼叫是為了效能</span><span class="WHIT">
|
||
<span class='line'>1050</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nodes.length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parent</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1051</span> </span><span class="WHIT"> </span><span class="NAME">node.push</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">(</span><span class="NAME">nodes</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1052</span> </span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1053</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1054</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>1055</span> node.push(n = _s(nodes[i], for_each));
|
||
<span class='line'>1056</span> if (for_each)
|
||
<span class='line'>1057</span> try {
|
||
<span class='line'>1058</span> for_each(n, layer, parent);
|
||
<span class='line'>1059</span> } catch (e) {
|
||
<span class='line'>1060</span> library_namespace.err(e);
|
||
<span class='line'>1061</span> library_namespace.err('new_node: handle function execution error for node Array['+i+'/'+l+']!<br/>' + for_each);
|
||
<span class='line'>1062</span> }
|
||
<span class='line'>1063</span> */</span><span class="WHIT">
|
||
<span class='line'>1064</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1065</span>
|
||
<span class='line'>1066</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1067</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">handle</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1068</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createTextNode</span><span class="PUNC">(</span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1069</span>
|
||
<span class='line'>1070</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">for_each</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1071</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1072</span> </span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">layer</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parent</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1073</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1074</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.err</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1075</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.err</span><span class="PUNC">(</span><span class="STRN">'new_node: handle function execution error!<br/>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">for_each</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1076</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1077</span>
|
||
<span class='line'>1078</span> </span><span class="WHIT"> </span><span class="COMM">// 設定 childNodes</span><span class="WHIT">
|
||
<span class='line'>1079</span> </span><span class="WHIT"> </span><span class="COMM">// 先插入document而後設定childNodes是因為IE有Cross-Page Leaks.</span><span class="WHIT">
|
||
<span class='line'>1080</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.blogjava.net/tim-wu/archive/2006/05/29/48729.html</span><span class="WHIT">
|
||
<span class='line'>1081</span> </span><span class="WHIT"> </span><span class="COMM">// http://www-128.ibm.com/developerworks/tw/library/x-matters41.html</span><span class="WHIT">
|
||
<span class='line'>1082</span> </span><span class="WHIT"> </span><span class="COMM">// Try to use createDocumentFragment()</span><span class="WHIT">
|
||
<span class='line'>1083</span> </span><span class="WHIT"> </span><span class="COMM">// http://wiki.forum.nokia.com/index.php/JavaScript_Performance_Best_Practices</span><span class="WHIT">
|
||
<span class='line'>1084</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">children</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">children</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1085</span> </span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">(</span><span class="NAME">children</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1086</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1087</span>
|
||
<span class='line'>1088</span>
|
||
<span class='line'>1089</span> </span><span class="WHIT"> </span><span class="COMM">// This helps to fix the memory leak issue.</span><span class="WHIT">
|
||
<span class='line'>1090</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.hedgerwow.com/360/dhtml/ie6_memory_leak_fix/</span><span class="WHIT">
|
||
<span class='line'>1091</span> </span><span class="WHIT"> </span><span class="COMM">// http://jacky.seezone.net/2008/09/05/2114/</span><span class="WHIT">
|
||
<span class='line'>1092</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1093</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.createTextNode</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1094</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">finally</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1095</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1096</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1097</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1098</span>
|
||
<span class='line'>1099</span> </span><span class="NAME">_.new_node.handle</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
|
||
<span class='line'>1100</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1101</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">is_e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.is_element_node</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">is_e</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">l.tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1102</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1103</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1104</span>
|
||
<span class='line'>1105</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1106</span> </span><span class="WHIT"> </span><span class="COMM">// no <select>!</span><span class="WHIT">
|
||
<span class='line'>1107</span> </span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1108</span> </span><span class="WHIT"> </span><span class="NAME">input</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1109</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT">
|
||
<span class='line'>1110</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1111</span> </span><span class="WHIT"> </span><span class="NAME">l.value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">l.value</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">is_e</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">n.innerHTML</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1112</span>
|
||
<span class='line'>1113</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1114</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">n.indexOf</span><span class="PUNC">(</span><span class="STRN">'<'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1115</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'option'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">l.value</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1116</span> </span><span class="WHIT"> </span><span class="NAME">l.value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1117</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createTextNode</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1118</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1119</span>
|
||
<span class='line'>1120</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1121</span> </span><span class="WHIT"> </span><span class="COMM">// this may throw error: -2146827687 未知的執行階段錯誤</span><span class="WHIT">
|
||
<span class='line'>1122</span> </span><span class="WHIT"> </span><span class="NAME">l.innerHTML</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1123</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1124</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">l.innerHTML</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1125</span> </span><span class="WHIT"> </span><span class="NAME">l.appendChild</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1126</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">l.innerHTML</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1127</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="COMM">//library_namespace.warn('new_node.handle[0]: The addition does not change the layer!');</span><span class="WHIT">
|
||
<span class='line'>1128</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1129</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1130</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1131</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1132</span> </span><span class="WHIT"> </span><span class="NAME">l.insertBefore</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1133</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1134</span> </span><span class="WHIT"> </span><span class="COMM">// 將 node 插入作為 layer 之 nextSibling.</span><span class="WHIT">
|
||
<span class='line'>1135</span> </span><span class="WHIT"> </span><span class="COMM">// p: parent node of layer</span><span class="WHIT">
|
||
<span class='line'>1136</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: 輸入多 node 時 cache next</span><span class="WHIT">
|
||
<span class='line'>1137</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">next</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">l.nextSibling</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1138</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">next</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1139</span> </span><span class="WHIT"> </span><span class="NAME">p.insertBefore</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">next</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1140</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>1141</span> </span><span class="WHIT"> </span><span class="NAME">p.appendChild</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1142</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1143</span> </span><span class="WHIT"> </span><span class="NAME">p.insertBefore</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1144</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1145</span> </span><span class="WHIT"> </span><span class="NAME">n.appendChild</span><span class="PUNC">(</span><span class="NAME">p.replaceChild</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1146</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1147</span> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1148</span>
|
||
<span class='line'>1149</span> </span><span class="COMM">// Namespaces: SVG,MathML,XHTML,XLink,..</span><span class="WHIT">
|
||
<span class='line'>1150</span> </span><span class="NAME">_.new_node.ns</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1151</span> </span><span class="WHIT"> </span><span class="NAME">svg</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'2000/svg'</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1152</span> </span><span class="WHIT"> </span><span class="NAME">mathml</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'1998/Math/MathML'</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1153</span> </span><span class="WHIT"> </span><span class="NAME">xhtml</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'1999/xhtml'</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1154</span> </span><span class="WHIT"> </span><span class="NAME">xlink</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'1999/xlink'</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1155</span> </span><span class="WHIT"> </span><span class="COMM">// 亦可用'1999/xhtml'</span><span class="WHIT">
|
||
<span class='line'>1156</span> </span><span class="WHIT"> </span><span class="NAME">html</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'TR/REC-html40'</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1157</span> </span><span class="WHIT"> </span><span class="NAME">html4</span><span class="PUNC">:</span><span class="STRN">'TR/REC-html40'</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1158</span> </span><span class="WHIT"> </span><span class="NAME">html5</span><span class="PUNC">:</span><span class="STRN">'TR/html5'</span><span class="WHIT">
|
||
<span class='line'>1159</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1160</span>
|
||
<span class='line'>1161</span>
|
||
<span class='line'>1162</span>
|
||
<span class='line'>1163</span> </span><span class="COMM">/*
|
||
<span class='line'>1164</span> XML_node('div','id:idName'); doesn't insert, just return the object
|
||
<span class='line'>1165</span> XML_node('div',{'id':null}); won't set id
|
||
<span class='line'>1166</span> XML_node('div',{'id':undefined}); won't set id
|
||
<span class='line'>1167</span>
|
||
<span class='line'>1168</span> XML_node('div','id:idName',1); insert at last of document
|
||
<span class='line'>1169</span> XML_node('div',{id:'idName'},refO); insert before(prepend) obj refO: refO.parentNode.insertBefore(_newNode_,refO)
|
||
<span class='line'>1170</span> XML_node('div','id:idName',document.body); insert at top of document
|
||
<span class='line'>1171</span> XML_node('div','id:idName',[parent]); append as a child of obj parent: parent.appendChild(_newNode_)
|
||
<span class='line'>1172</span> XML_node('div','id:idName',[parent,0]); append as a child of obj parent: parent.appendChild(_newNode_)
|
||
<span class='line'>1173</span> XML_node('div','id:idName',[parent,refNode]); insert before refNode: parent.insertBefore(_newNode_,refNode)
|
||
<span class='line'>1174</span> XML_node('div','id:idName',[parent,refNode,1]); insert after refNode: UNDO
|
||
<span class='line'>1175</span> XML_node('div','id:idName',[parent,1]); insert as the first child of parent: parent.insertBefore(_newNode_,parent.firstChild)
|
||
<span class='line'>1176</span> XML_node('div','id:idName',[0,refNode]); insert before refNode: document.body.insertBefore(_newNode_,refNode)
|
||
<span class='line'>1177</span> XML_node('div','id:idName',[0]); append after all: document.body.appendChild(_newNode_,refNode)
|
||
<span class='line'>1178</span>
|
||
<span class='line'>1179</span> XML_node('div','id:idName',0,'asas'); insert 'asas' as innerText
|
||
<span class='line'>1180</span> new_node({div:'asas',id:'idName'},0);
|
||
<span class='line'>1181</span> XML_node('div','id:idName',0,'<a>sas</a>'); insert 'asas' as innerHTML
|
||
<span class='line'>1182</span> new_node({div:{a:'sas'},id:'idName'},0);
|
||
<span class='line'>1183</span> XML_node('div','id:idName',0,obj); insert obj as childNode
|
||
<span class='line'>1184</span> new_node({div:obj,id:'idName'},0);
|
||
<span class='line'>1185</span> XML_node('div','id:idName',0,[o1,o2]); insert o1,o2 as childNodes
|
||
<span class='line'>1186</span> new_node({div:[o1,o2],id:'idName'},0);
|
||
<span class='line'>1187</span>
|
||
<span class='line'>1188</span>
|
||
<span class='line'>1189</span> 有用到新建 HTML element 的函數執行完畢應該將所有變數,尤其是 object 重設;
|
||
<span class='line'>1190</span> 這是因為 HTML element 的存在會使函數裡的 object 變數不能被釋放。
|
||
<span class='line'>1191</span> 設成 null 是因為 null 不能設定 method,而 string, number 可以。
|
||
<span class='line'>1192</span>
|
||
<span class='line'>1193</span> http://www.blogjava.net/tim-wu/archive/2006/05/29/48729.html
|
||
<span class='line'>1194</span> 為預防IE Cross-Page Leaks,
|
||
<span class='line'>1195</span> use:
|
||
<span class='line'>1196</span> XML_node(++, ++, [XML_node(.., .., [meta])]);
|
||
<span class='line'>1197</span> instead of:
|
||
<span class='line'>1198</span> XML_node(.., .., [meta], XML_node(++, ++));
|
||
<span class='line'>1199</span> P.S. 2007/11/11 似乎已修正?
|
||
<span class='line'>1200</span>
|
||
<span class='line'>1201</span>
|
||
<span class='line'>1202</span> buggy 瑕疵:
|
||
<span class='line'>1203</span> XML_node(0,0,[parent],'innerText'); return a textNode append as a child of obj parent
|
||
<span class='line'>1204</span>
|
||
<span class='line'>1205</span> TODO:
|
||
<span class='line'>1206</span> XML 中 insertBefore(),appendChild()似乎無反應? http://developer.mozilla.org/en/docs/SVG:Namespaces_Crash_Course
|
||
<span class='line'>1207</span> insertAfter
|
||
<span class='line'>1208</span>
|
||
<span class='line'>1209</span> */</span><span class="WHIT">
|
||
<span class='line'>1210</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>1211</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>1212</span> </span><span class="COMM">/**
|
||
<span class='line'>1213</span> * create new HTML/XML <a href="https://developer.mozilla.org/en/DOM/node">node</a>(<a href="https://developer.mozilla.org/en/DOM/element">element</a>)
|
||
<span class='line'>1214</span> * @param tag tag name
|
||
<span class='line'>1215</span> * @param propertyO attributes object
|
||
<span class='line'>1216</span> * @param insertBeforeO object that we wnat to insert before it
|
||
<span class='line'>1217</span> * @param innerObj inner object(s)
|
||
<span class='line'>1218</span> * @param styleO style object
|
||
<span class='line'>1219</span> * @return node object created
|
||
<span class='line'>1220</span> * @requires set_attribute,add_node
|
||
<span class='line'>1221</span> * @since 2006/9/6 20:29,11/12 22:13
|
||
<span class='line'>1222</span> * @memberOf CeL.net.web
|
||
<span class='line'>1223</span> */</span><span class="WHIT">
|
||
<span class='line'>1224</span> </span><span class="NAME">XML_node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">insertBeforeO</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">innerObj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">styleO</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1225</span> </span><span class="WHIT"> </span><span class="COMM">// XML 中沒有document.body!</span><span class="WHIT">
|
||
<span class='line'>1226</span> </span><span class="WHIT"> </span><span class="COMM">//if(typeof document.body=='undefined')document.body=document.getElementsByTagName('body')[0];</span><span class="WHIT">
|
||
<span class='line'>1227</span>
|
||
<span class='line'>1228</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT">
|
||
<span class='line'>1229</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">document.createElement</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">document.createElementNS</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1230</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">document.body</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1231</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'XML_node: Cannot create tag ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'].'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1232</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1233</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1234</span>
|
||
<span class='line'>1235</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_NS</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1236</span> </span><span class="WHIT"> </span><span class="COMM">// Namespaces: SVG,MathML,XHTML,XLink</span><span class="WHIT">
|
||
<span class='line'>1237</span> </span><span class="WHIT"> </span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.new_node.ns</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1238</span> </span><span class="WHIT"> </span><span class="COMM">// use Namespaces or not</span><span class="WHIT">
|
||
<span class='line'>1239</span> </span><span class="WHIT"> </span><span class="COMM">// buggy now.</span><span class="WHIT">
|
||
<span class='line'>1240</span> </span><span class="WHIT"> </span><span class="NAME">_DOM2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElementNS</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1241</span> </span><span class="WHIT"> </span><span class="COMM">// Namespaces base</span><span class="WHIT">
|
||
<span class='line'>1242</span> </span><span class="WHIT"> </span><span class="NAME">_e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'http://www.w3.org/'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1243</span>
|
||
<span class='line'>1244</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>1245</span> // 依styleO指定 Namespace
|
||
<span class='line'>1246</span> if (typeof styleO === 'string') {
|
||
<span class='line'>1247</span> if (styleO.indexOf('://') != -1)
|
||
<span class='line'>1248</span> _NS = styleO, styleO = 0;
|
||
<span class='line'>1249</span> else if (_i[styleO])
|
||
<span class='line'>1250</span> _NS = _e + _i[styleO], styleO = 0;
|
||
<span class='line'>1251</span> } else
|
||
<span class='line'>1252</span> // buggy now.
|
||
<span class='line'>1253</span> _DOM2 = 0;//_NS = styleO === null ? null : _e + _i['XHTML'];//undefined==null
|
||
<span class='line'>1254</span> */</span><span class="WHIT">
|
||
<span class='line'>1255</span>
|
||
<span class='line'>1256</span> </span><span class="WHIT"> </span><span class="COMM">// 指定 Namespace</span><span class="WHIT">
|
||
<span class='line'>1257</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1258</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_NS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tag.match</span><span class="PUNC">(</span><span class="REGX">/^(.+):([^:]+)$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1259</span> </span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_NS</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1260</span> </span><span class="WHIT"> </span><span class="NAME">_NS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_NS</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1261</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_NS.indexOf</span><span class="PUNC">(</span><span class="STRN">'://'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_i</span><span class="PUNC">[</span><span class="NAME">_NS.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1262</span> </span><span class="WHIT"> </span><span class="NAME">_NS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_e</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1263</span> </span><span class="WHIT"> </span><span class="COMM">// library_namespace.warn('XML_node: Add ['+tag+'] of\n'+_NS);</span><span class="WHIT">
|
||
<span class='line'>1264</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1265</span>
|
||
<span class='line'>1266</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>1267</span> for MathML:
|
||
<span class='line'>1268</span> IE: document.createElement('m:'+tag)
|
||
<span class='line'>1269</span> (surely 'mml:', but 'm:' is default of MathPlayer, so now <html> works without the xmlns attribute)
|
||
<span class='line'>1270</span> NS: document.createElementNS('http://www.w3.org/1998/Math/MathML', tag)
|
||
<span class='line'>1271</span> */</span><span class="WHIT">
|
||
<span class='line'>1272</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1273</span> </span><span class="WHIT"> </span><span class="NAME">_e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">_DOM2</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">_NS</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.createElementNS</span><span class="PUNC">(</span><span class="NAME">_NS</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1274</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="COMM">/* .replace(/[<>\/]/g,'') */</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1275</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document.createTextNode</span><span class="PUNC">(</span><span class="NAME">innerObj</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1276</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1277</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'XML_node: Error create tag:\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="COMM">/* + '\n' + _e.description */</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1278</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1279</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1280</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1281</span> </span><span class="WHIT"> </span><span class="NAME">_.set_attribute</span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">propertyO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1282</span>
|
||
<span class='line'>1283</span> </span><span class="WHIT"> </span><span class="COMM">// IE需要先appendChild才能操作style,moz不用..??</span><span class="WHIT">
|
||
<span class='line'>1284</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">styleO</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">_e.style</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1285</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">styleO</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1286</span> </span><span class="WHIT"> </span><span class="NAME">_e.style.cssText</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">styleO</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1287</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">styleO</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1288</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">styleO</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1289</span> </span><span class="WHIT"> </span><span class="COMM">// is_IE?"styleFloat":"cssFloat"</span><span class="WHIT">
|
||
<span class='line'>1290</span> </span><span class="WHIT"> </span><span class="NAME">_e.style</span><span class="PUNC">[</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'float'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'cssFloat'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_e.style</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'cssFloat'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'styleFloat'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">_i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">styleO</span><span class="PUNC">[</span><span class="NAME">_i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1291</span> </span><span class="WHIT"> </span><span class="COMM">//else library_namespace.warn('XML_node: Error set style:\n[' + styleO + ']');</span><span class="WHIT">
|
||
<span class='line'>1292</span>
|
||
<span class='line'>1293</span>
|
||
<span class='line'>1294</span> </span><span class="WHIT"> </span><span class="COMM">// 插入document中。先插入document而後設定childNodes是因為IE有Cross-Page Leaks</span><span class="WHIT">
|
||
<span class='line'>1295</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.blogjava.net/tim-wu/archive/2006/05/29/48729.html</span><span class="WHIT">
|
||
<span class='line'>1296</span> </span><span class="WHIT"> </span><span class="COMM">// http://www-128.ibm.com/developerworks/tw/library/x-matters41.html</span><span class="WHIT">
|
||
<span class='line'>1297</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">insertBeforeO</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1298</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">rO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="COMM">/* [][1] */</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">_o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1299</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">_o</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">_o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">_i</span><span class="WHIT">
|
||
<span class='line'>1300</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">_o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1301</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">iO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tO</span><span class="PUNC">(</span><span class="NAME">insertBeforeO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1302</span> </span><span class="WHIT"> </span><span class="COMM">// Opera9 need .constructor===Array</span><span class="WHIT">
|
||
<span class='line'>1303</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Array</span><span class="PUNC">(</span><span class="NAME">iO</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">iO.length</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1304</span> </span><span class="WHIT"> </span><span class="COMM">// 在disable CSS時可能會 Warning: reference to undefined property iO[1]</span><span class="WHIT">
|
||
<span class='line'>1305</span> </span><span class="WHIT"> </span><span class="COMM">// rO: referrer object,</span><span class="WHIT">
|
||
<span class='line'>1306</span> </span><span class="WHIT"> </span><span class="COMM">// 以此決定以appendChild()或insertBefore()的形式插入</span><span class="WHIT">
|
||
<span class='line'>1307</span> </span><span class="WHIT"> </span><span class="NAME">rO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">iO.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">tO</span><span class="PUNC">(</span><span class="NAME">iO</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">iO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tO</span><span class="PUNC">(</span><span class="NAME">iO</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1308</span>
|
||
<span class='line'>1309</span> </span><span class="WHIT"> </span><span class="COMM">//if(typeof iO !== 'object' && (iO = document.body, typeof rO === 'undefined')) rO = 0;</span><span class="WHIT">
|
||
<span class='line'>1310</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">iO</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1311</span> </span><span class="WHIT"> </span><span class="NAME">iO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.body</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1312</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">rO</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1313</span> </span><span class="WHIT"> </span><span class="NAME">rO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1314</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1315</span>
|
||
<span class='line'>1316</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">rO</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1317</span> </span><span class="WHIT"> </span><span class="NAME">iO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rO</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">iO</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">parentNode</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1318</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">iO</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1319</span> </span><span class="WHIT"> </span><span class="COMM">// 預防輸入的rO為create出來的</span><span class="WHIT">
|
||
<span class='line'>1320</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rO</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1321</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1322</span> </span><span class="WHIT"> </span><span class="COMM">// .firstChild == .childNodes[0]</span><span class="WHIT">
|
||
<span class='line'>1323</span> </span><span class="WHIT"> </span><span class="NAME">iO.insertBefore</span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">rO</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">iO.firstChild</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">rO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1324</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1325</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'XML_node: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">e.message</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\niO:'</span><span class="WHIT">
|
||
<span class='line'>1326</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">iO</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\nrO:'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">rO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1327</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1328</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>1329</span> </span><span class="WHIT"> </span><span class="COMM">//document.body.insertBefore(_e, iO);</span><span class="WHIT">
|
||
<span class='line'>1330</span> </span><span class="WHIT"> </span><span class="NAME">iO.appendChild</span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1331</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1332</span>
|
||
<span class='line'>1333</span>
|
||
<span class='line'>1334</span> </span><span class="WHIT"> </span><span class="COMM">// 設定 childNodes</span><span class="WHIT">
|
||
<span class='line'>1335</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1336</span> </span><span class="WHIT"> </span><span class="NAME">_.add_node</span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">innerObj</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1337</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>1338</span> if (tag && innerObj)
|
||
<span class='line'>1339</span> (_i = function(_o) {
|
||
<span class='line'>1340</span> if (typeof _o == 'object') {
|
||
<span class='line'>1341</span> if (_o)
|
||
<span class='line'>1342</span> if (_o instanceof Array)// &&_o.length
|
||
<span class='line'>1343</span> for ( var _j = 0; _j < _o.length; _j++)
|
||
<span class='line'>1344</span> _i(_o[_j]);
|
||
<span class='line'>1345</span> else
|
||
<span class='line'>1346</span> _e.appendChild(_o);
|
||
<span class='line'>1347</span> return;
|
||
<span class='line'>1348</span> }
|
||
<span class='line'>1349</span> if (typeof _o == 'number' && !isNaN(_o))
|
||
<span class='line'>1350</span> // _o+='';
|
||
<span class='line'>1351</span> _o = _o.toString();
|
||
<span class='line'>1352</span> if (typeof _o == 'string')
|
||
<span class='line'>1353</span> if (_o.indexOf('<') != -1)
|
||
<span class='line'>1354</span> _e.innerHTML += _o;
|
||
<span class='line'>1355</span> else
|
||
<span class='line'>1356</span> _e.appendChild(document.createTextNode(_o));
|
||
<span class='line'>1357</span> //else library_namespace.warn('XML_node: Error insert contents:\n[' + _o + ']');
|
||
<span class='line'>1358</span> })(innerObj);
|
||
<span class='line'>1359</span> */</span><span class="WHIT">
|
||
<span class='line'>1360</span>
|
||
<span class='line'>1361</span> </span><span class="WHIT"> </span><span class="COMM">// this helps to fix the memory leak issue</span><span class="WHIT">
|
||
<span class='line'>1362</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.hedgerwow.com/360/dhtml/ie6_memory_leak_fix/</span><span class="WHIT">
|
||
<span class='line'>1363</span> </span><span class="WHIT"> </span><span class="COMM">// http://jacky.seezone.net/2008/09/05/2114/</span><span class="WHIT">
|
||
<span class='line'>1364</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1365</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_e</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1366</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">finally</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1367</span> </span><span class="WHIT"> </span><span class="NAME">_e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1368</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1369</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1370</span>
|
||
<span class='line'>1371</span>
|
||
<span class='line'>1372</span>
|
||
<span class='line'>1373</span>
|
||
<span class='line'>1374</span>
|
||
<span class='line'>1375</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>1376</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>1377</span> </span><span class="COMM">/**
|
||
<span class='line'>1378</span> * 設定 HTML element 的 text。
|
||
<span class='line'>1379</span> * 對付IE與Moz不同的text取得方法。現階段不應用innerText,應該用此函數來取得或設定內部text。
|
||
<span class='line'>1380</span> * TODO: DOM: 用.nodeValue
|
||
<span class='line'>1381</span> * @param element HTML element
|
||
<span class='line'>1382</span> * @param {String} text the text to be set
|
||
<span class='line'>1383</span> * @return
|
||
<span class='line'>1384</span> * @see
|
||
<span class='line'>1385</span> * http://www.klstudio.com/post/94.html
|
||
<span class='line'>1386</span> * @memberOf CeL.net.web
|
||
<span class='line'>1387</span> */</span><span class="WHIT">
|
||
<span class='line'>1388</span> </span><span class="NAME">set_text</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">text</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1389</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window.document</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT">
|
||
<span class='line'>1390</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.get_element</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1391</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1392</span>
|
||
<span class='line'>1393</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">text_p</span><span class="PUNC">=</span><span class="NAME">_.set_text.p</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1394</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">text_p</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">text_p</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1395</span> </span><span class="WHIT"> </span><span class="NAME">_.set_text.p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text_p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
|
||
<span class='line'>1396</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.body.textContent</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'textContent'</span><span class="WHIT">
|
||
<span class='line'>1397</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.body.innerText</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'innerText'</span><span class="WHIT">
|
||
<span class='line'>1398</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'innerHTML'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1399</span>
|
||
<span class='line'>1400</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">element.value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">text_p</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1401</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1402</span> </span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">[</span><span class="NAME">p</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1403</span>
|
||
<span class='line'>1404</span> </span><span class="WHIT"> </span><span class="COMM">// http://www-128.ibm.com/developerworks/tw/library/x-matters41.html</span><span class="WHIT">
|
||
<span class='line'>1405</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">element.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1406</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">element.data</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1407</span>
|
||
<span class='line'>1408</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>1409</span> var i = 0, t = [];
|
||
<span class='line'>1410</span> for (; i < element.childNodes.length; i++)
|
||
<span class='line'>1411</span> t.push(set_text(element.childNodes[i]));
|
||
<span class='line'>1412</span> return t.join('');
|
||
<span class='line'>1413</span> */</span><span class="WHIT">
|
||
<span class='line'>1414</span>
|
||
<span class='line'>1415</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">[</span><span class="NAME">p</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1416</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1417</span>
|
||
<span class='line'>1418</span>
|
||
<span class='line'>1419</span> </span><span class="COMM">/* 用在top的index.htm中,當setTopP()後指定特殊頁面 2005/1/26 21:46
|
||
<span class='line'>1420</span> set: window.onload=setFrame;
|
||
<span class='line'>1421</span> var setFrameTarget='MAIN',setFrameTargetSet={'menu.htm':'MENU','all.htm':'MENU','midi.htm':'MIDI'};
|
||
<span class='line'>1422</span>
|
||
<span class='line'>1423</span> ** xhtml1-frameset.dtd中<script>只能放在<head>
|
||
<span class='line'>1424</span> */</span><span class="WHIT">
|
||
<span class='line'>1425</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">setFrameTarget</span><span class="PUNC">,</span><span class="NAME">setFrameTargetSet</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 預設target, 轉頁的target lists</span><span class="WHIT">
|
||
<span class='line'>1426</span> </span><span class="COMM">//setFrame[generateCode.dLK]='setFrameTarget,setFrameTargetSet';</span><span class="WHIT">
|
||
<span class='line'>1427</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">setFrame</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1428</span> </span><span class="WHIT"> </span><span class="COMM">//alert(window.name);</span><span class="WHIT">
|
||
<span class='line'>1429</span> </span><span class="WHIT"> </span><span class="COMM">//for(var i=0;i<window.frames.length;i++)alert(window.frames[i].name);</span><span class="WHIT">
|
||
<span class='line'>1430</span> </span><span class="WHIT"> </span><span class="COMM">//alert(top.location.href+'\n'+location.href+'\n'+(top.location.href!=location.href)+'\n'+(window.top!=window.window));</span><span class="WHIT">
|
||
<span class='line'>1431</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">window.top</span><span class="PUNC">!=</span><span class="NAME">window.window</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="COMM">//top.location.href!=location.href</span><span class="WHIT">
|
||
<span class='line'>1432</span> </span><span class="WHIT"> </span><span class="NAME">window.top.location.replace</span><span class="PUNC">(</span><span class="NAME">location.href</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1433</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1434</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1435</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1436</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">location.hash.slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// IE在about:blank的情況下呼叫網頁,網頁完全載入前location無法呼叫。例如從FireFox拉進IE時使用location.*有可能'沒有使用權限',reload即可。</span><span class="WHIT">
|
||
<span class='line'>1437</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">setFrameTargetSet</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="NAME">setFrameTargetSet</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1438</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">decodeURIComponent</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">unescape</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1439</span> </span><span class="WHIT"> </span><span class="COMM">//location.hash=''; // 這一項會reload</span><span class="WHIT">
|
||
<span class='line'>1440</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">l.match</span><span class="PUNC">(</span><span class="REGX">/([^\/]+)$/</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="NAME">RegExp.$1</span><span class="PUNC">:</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">f.match</span><span class="PUNC">(</span><span class="REGX">/^([^?#]+)/</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="NAME">RegExp.$1</span><span class="PUNC">:</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">setFrameTargetSet</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="NAME">setFrameTargetSet</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="NAME">setFrameTarget</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">!=</span><span class="NAME">window.name</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">window.frames</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">window.frames</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">location.href</span><span class="PUNC">!=</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1441</span> </span><span class="WHIT"> </span><span class="COMM">//alert(l+'\n==>\n'+f),</span><span class="WHIT">
|
||
<span class='line'>1442</span> </span><span class="WHIT"> </span><span class="NAME">window.open</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//if((l=window.open(l,f).top).focus(),alert(l!=self.top),l!=self.top)self.top.close();//alert(l+'\n'+f), // moz需要等到frame load之後才能得到window.frames[f].location.href==l的結果,所以可以考慮作setTimeout的延遲。但是假如真的不是預設的page,這樣會造成多load一遍。</span><span class="WHIT">
|
||
<span class='line'>1443</span> </span><span class="WHIT"> </span><span class="COMM">//setTimeout('alert(window.frames["'+f+'"].location.href);',900);</span><span class="WHIT">
|
||
<span class='line'>1444</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1445</span> </span><span class="COMM">/*
|
||
<span class='line'>1446</span> set window.top page to certain location
|
||
<span class='line'>1447</span> setTopP(location,search)
|
||
<span class='line'>1448</span> search===setTopP_doTest: do a test, return window.top不為指定頁?1:0
|
||
<span class='line'>1449</span> */</span><span class="WHIT">
|
||
<span class='line'>1450</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">setTopPDTopP</span><span class="PUNC">,</span><span class="NAME">setTopP_doTest</span><span class="PUNC">=</span><span class="PUNC">.</span><span class="NUMB">234372464</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// default top page(file) path</span><span class="WHIT">
|
||
<span class='line'>1451</span> </span><span class="COMM">//setTopP[generateCode.dLK]='dBasePath,getFN,setTopPDTopP,setTopP_doTest';</span><span class="WHIT">
|
||
<span class='line'>1452</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">setTopP</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1453</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">setTopPDTopP</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1454</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1455</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1456</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">dBasePath</span><span class="PUNC">(</span><span class="NAME">setTopPDTopP</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">getFN</span><span class="PUNC">(</span><span class="NAME">setTopPDTopP</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1457</span> </span><span class="WHIT"> </span><span class="COMM">// alert(l);</span><span class="WHIT">
|
||
<span class='line'>1458</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1459</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1460</span> </span><span class="WHIT"> </span><span class="COMM">// IE在about:blank的情況下呼叫網頁,網頁完全載入前location無法呼叫。</span><span class="WHIT">
|
||
<span class='line'>1461</span> </span><span class="WHIT"> </span><span class="COMM">// 例如從FireFox拉進IE時使用location.*有可能'沒有使用權限',reload即可。</span><span class="WHIT">
|
||
<span class='line'>1462</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window</span><span class="COMM">/* self */</span><span class="PUNC">.</span><span class="NAME">location.search</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1463</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1464</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1465</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1466</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/[\/\\]$/i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ri</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/[\/\\](index.s?html?)?$/i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1467</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1468</span> </span><span class="WHIT"> </span><span class="COMM">// top.location.pathname在遇到local file時可能出問題。</span><span class="WHIT">
|
||
<span class='line'>1469</span> </span><span class="WHIT"> </span><span class="COMM">// 若不同domain時top.location也不能取用,應改成window.top!=window.window</span><span class="WHIT">
|
||
<span class='line'>1470</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.top.location.href.replace</span><span class="PUNC">(</span><span class="REGX">/[?#](.*)$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1471</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1472</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1473</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1474</span> </span><span class="WHIT"> </span><span class="COMM">// alert(t+'\n'+l+'\n'+(t!=l));</span><span class="WHIT">
|
||
<span class='line'>1475</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">r.test</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">ri.test</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">ri.test</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">r.test</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1476</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">setTopP_doTest</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1477</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1478</span> </span><span class="WHIT"> </span><span class="COMM">// replace() 方法可以開啟檔案,但是卻不會更動瀏覽器的瀏覽歷程(history)內容.</span><span class="WHIT">
|
||
<span class='line'>1479</span> </span><span class="WHIT"> </span><span class="COMM">// IE6若location.href長度超過2KB,光是'location.search'這項敘述就會導致異常.</span><span class="WHIT">
|
||
<span class='line'>1480</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>1481</span> </span><span class="WHIT"> </span><span class="COMM">// 預設page:xx/和xx/index.htm相同</span><span class="WHIT">
|
||
<span class='line'>1482</span> </span><span class="WHIT"> </span><span class="NAME">window.top.location.replace</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'#'</span><span class="WHIT">
|
||
<span class='line'>1483</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">encodeURIComponent</span><span class="PUNC">(</span><span class="NAME">location.href</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1484</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1485</span>
|
||
<span class='line'>1486</span>
|
||
<span class='line'>1487</span> </span><span class="COMM">// 設在body.onload,改變IE中所有<a>在滑鼠移入移出時的 window.status</span><span class="WHIT">
|
||
<span class='line'>1488</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">setAstatusOS</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// old status,也可設定event.srcElement.ostatus等等,但考慮到將造成記憶體浪費…</span><span class="WHIT">
|
||
<span class='line'>1489</span> </span><span class="COMM">//setAstatus[generateCode.dLK]='setAstatusOver,setAstatusOut';</span><span class="WHIT">
|
||
<span class='line'>1490</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">setAstatus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1491</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window.status</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT">
|
||
<span class='line'>1492</span> </span><span class="WHIT"> </span><span class="COMM">//||typeof event.srcElement=='undefined'</span><span class="WHIT">
|
||
<span class='line'>1493</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1494</span> </span><span class="WHIT"> </span><span class="COMM">// 預防版本過低(4以下)的瀏覽器出現錯誤:event至IE4才出現</span><span class="WHIT">
|
||
<span class='line'>1495</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1496</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1497</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="STRN">'a'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1498</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1499</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">title</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onmouseover</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onmouseout</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1500</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onmouseover</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">setAstatusOver</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1501</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onmouseout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">setAstatusOut</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1502</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1503</span> </span><span class="COMM">//setAstatusOver[generateCode.dLK]=setAstatusOut[generateCode.dLK]='setAstatusOS';</span><span class="WHIT">
|
||
<span class='line'>1504</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">setAstatusOver</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1505</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.event.srcElement</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1506</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o.title</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1507</span> </span><span class="WHIT"> </span><span class="NAME">setAstatusOS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.status</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">window.status</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o.title</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1508</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1509</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1510</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1511</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">setAstatusOut</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1512</span> </span><span class="WHIT"> </span><span class="COMM">//var o=event.srcElement;if(typeof o.ostatus!='undefined'){window.status=o.ostatus;return true;}</span><span class="WHIT">
|
||
<span class='line'>1513</span> </span><span class="WHIT"> </span><span class="NAME">window.status</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">setAstatusOS</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1514</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1515</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1516</span>
|
||
<span class='line'>1517</span>
|
||
<span class='line'>1518</span>
|
||
<span class='line'>1519</span>
|
||
<span class='line'>1520</span>
|
||
<span class='line'>1521</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>1522</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>1523</span> </span><span class="COMM">/**
|
||
<span class='line'>1524</span> * fill data to table.
|
||
<span class='line'>1525</span> * 增加 table 的列(row)
|
||
<span class='line'>1526</span> * @param {Array|Object} data data list
|
||
<span class='line'>1527</span> * @param table table element
|
||
<span class='line'>1528</span> * @param {Array} header header list
|
||
<span class='line'>1529</span> * @return
|
||
<span class='line'>1530</span> * @example
|
||
<span class='line'>1531</span> * table_list([list1],[list2],..)
|
||
<span class='line'>1532</span> * e.g., table_list([1,2,3,4],[4,5,3,4]);
|
||
<span class='line'>1533</span> * table_list([[list1],[list2],..])
|
||
<span class='line'>1534</span> * e.g., table_list( [ [1,2,3,4],[4,5,3,4] ] );
|
||
<span class='line'>1535</span> * @since 2010/05/03 14:13:18
|
||
<span class='line'>1536</span> * @memberOf CeL.net.web
|
||
<span class='line'>1537</span> * @see
|
||
<span class='line'>1538</span> * http://www.datatables.net/
|
||
<span class='line'>1539</span> */</span><span class="WHIT">
|
||
<span class='line'>1540</span> </span><span class="NAME">table_list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">table</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">header</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">do_clean</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1541</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">add_list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">array</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1542</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">library_namespace.is_Array</span><span class="PUNC">(</span><span class="NAME">array</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1543</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1544</span>
|
||
<span class='line'>1545</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'tr'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">td</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">array</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">L</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">array.length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1546</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">L</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1547</span> </span><span class="WHIT"> </span><span class="NAME">td</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">'td'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1548</span> </span><span class="WHIT"> </span><span class="NAME">td.appendChild</span><span class="PUNC">(</span><span class="NAME">document.createTextNode</span><span class="PUNC">(</span><span class="NAME">array</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1549</span> </span><span class="WHIT"> </span><span class="NAME">tr.appendChild</span><span class="PUNC">(</span><span class="NAME">td</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1550</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1551</span> </span><span class="WHIT"> </span><span class="NAME">table.appendChild</span><span class="PUNC">(</span><span class="NAME">tr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1552</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1553</span>
|
||
<span class='line'>1554</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">table</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1555</span> </span><span class="WHIT"> </span><span class="NAME">table</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">table</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1556</span>
|
||
<span class='line'>1557</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>1558</span> // in Chrome/5.0.342.9 @ Ubuntu, 加了會出問題。
|
||
<span class='line'>1559</span> try{
|
||
<span class='line'>1560</span> if(l=table.getElementsByTagName('tbody'))
|
||
<span class='line'>1561</span> table=l[0];
|
||
<span class='line'>1562</span> }catch(e){}
|
||
<span class='line'>1563</span> */</span><span class="WHIT">
|
||
<span class='line'>1564</span>
|
||
<span class='line'>1565</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">do_clean</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1566</span> </span><span class="WHIT"> </span><span class="NAME">table.innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1567</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>1568</span> try {
|
||
<span class='line'>1569</span> // moz
|
||
<span class='line'>1570</span> table.innerHTML = '';
|
||
<span class='line'>1571</span> } catch (e) {
|
||
<span class='line'>1572</span> try {
|
||
<span class='line'>1573</span> // alert(table.rows.length);
|
||
<span class='line'>1574</span> // IE
|
||
<span class='line'>1575</span> for ( var i = table.rows.length; i > 0;)
|
||
<span class='line'>1576</span> table.deleteRow(--i);
|
||
<span class='line'>1577</span> } catch (e) {
|
||
<span class='line'>1578</span> }
|
||
<span class='line'>1579</span> }
|
||
<span class='line'>1580</span> */</span><span class="WHIT">
|
||
<span class='line'>1581</span>
|
||
<span class='line'>1582</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">header</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1583</span> </span><span class="WHIT"> </span><span class="NAME">add_list</span><span class="PUNC">(</span><span class="NAME">header</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'th'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1584</span>
|
||
<span class='line'>1585</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">data.length</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT">
|
||
<span class='line'>1586</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">library_namespace.is_Array</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1587</span> </span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1588</span>
|
||
<span class='line'>1589</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Array</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1590</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1591</span> </span><span class="WHIT"> </span><span class="NAME">add_list</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1592</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1593</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Object</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1594</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1595</span> </span><span class="WHIT"> </span><span class="NAME">add_list</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1596</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1597</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>1598</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.debug</span><span class="PUNC">(</span><span class="STRN">'Error input: not legal data!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1599</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1600</span>
|
||
<span class='line'>1601</span>
|
||
<span class='line'>1602</span>
|
||
<span class='line'>1603</span> </span><span class="COMM">/*
|
||
<span class='line'>1604</span>
|
||
<span class='line'>1605</span> test:
|
||
<span class='line'>1606</span> /fsghj.sdf
|
||
<span class='line'>1607</span> a.htm
|
||
<span class='line'>1608</span> http://www.whatwg.org/specs/web-apps/current-work/#attr-input-pattern
|
||
<span class='line'>1609</span> file:///D:/USB/cgi-bin/lib/JS/_test_suit/test.htm
|
||
<span class='line'>1610</span> //www.whatwg.org/specs/web-apps/current-work/#attr-input-pattern
|
||
<span class='line'>1611</span>
|
||
<span class='line'>1612</span> TODO:
|
||
<span class='line'>1613</span> .fileName:
|
||
<span class='line'>1614</span> file:///D:/USB/cgi-bin/lib/JS/_test_suit/test.htm
|
||
<span class='line'>1615</span> ->
|
||
<span class='line'>1616</span> D:\USB\cgi-bin\lib\JS\_test_suit\test.htm
|
||
<span class='line'>1617</span>
|
||
<span class='line'>1618</span> eURI : /^((file|telnet|ftp|https?)\:\/\/|~?\/)?(\w+(:\w+)?@)?(([-\w]+\.)+([a-z]{2}|com|org|net))?(:\d{1,5})?(\/([-\w~!$+|.,=]|%[a-f\d]{2})*)?(\?(([-\w~!$+|.,*:]|%[a-f\d{2}])+(=([-\w~!$+|.,*:=]|%[a-f\d]{2})*)?&?)*)?(#([-\w~!$+|.,*:=]|%[a-f\d]{2})*)?$/i,
|
||
<span class='line'>1619</span>
|
||
<span class='line'>1620</span> */</span><span class="WHIT">
|
||
<span class='line'>1621</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>1622</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>1623</span> </span><span class="COMM">/**
|
||
<span class='line'>1624</span> * Parses URI
|
||
<span class='line'>1625</span> * @param {String} URI URI to parse
|
||
<span class='line'>1626</span> * @return parsed object
|
||
<span class='line'>1627</span> * @example
|
||
<span class='line'>1628</span> * alert(parse_URI('ftp://user:cgh@dr.fxgv.sfdg:4231/3452/dgh.rar?fg=23#hhh').hostname);
|
||
<span class='line'>1629</span> * @since 2010/4/13 23:53:14 from parseURI+parseURL
|
||
<span class='line'>1630</span> * @memberOf CeL.net.web
|
||
<span class='line'>1631</span> * @see
|
||
<span class='line'>1632</span> * RFC 1738, RFC 2396, RFC 3986,
|
||
<span class='line'>1633</span> * Uniform Resource Identifier (URI): Generic Syntax,
|
||
<span class='line'>1634</span> * http://tools.ietf.org/html/rfc3987,
|
||
<span class='line'>1635</span> * http://flanders.co.nz/2009/11/08/a-good-url-regular-expression-repost/,
|
||
<span class='line'>1636</span> * http://www.mattfarina.com/2009/01/08/rfc-3986-url-validation,
|
||
<span class='line'>1637</span> * also see batURL.htm
|
||
<span class='line'>1638</span> */</span><span class="WHIT">
|
||
<span class='line'>1639</span> </span><span class="NAME">parse_URI</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">URI</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1640</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">URI</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1641</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">h</span><span class="WHIT">
|
||
<span class='line'>1642</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
|
||
<span class='line'>1643</span> </span><span class="WHIT"> </span><span class="COMM">// 不能用 instanceof String!</span><span class="WHIT">
|
||
<span class='line'>1644</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT">
|
||
<span class='line'>1645</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">h.match</span><span class="PUNC">(</span><span class="REGX">/^([\w\d\-]{2,}:)?(\/\/)?(\/[A-Za-z]:|[^\/#?&\s:]+)([^\s:]*)$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1646</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1647</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('parse [' + URI + ']: '+m);</span><span class="WHIT">
|
||
<span class='line'>1648</span>
|
||
<span class='line'>1649</span> </span><span class="WHIT"> </span><span class="NAME">URI</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">is_DOM</span><span class="PUNC">(</span><span class="STRN">'location'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1650</span> </span><span class="WHIT"> </span><span class="COMM">// protocol包含最後的':',search包含'?',hash包含'#'</span><span class="WHIT">
|
||
<span class='line'>1651</span> </span><span class="WHIT"> </span><span class="COMM">// file|telnet|ftp|https</span><span class="WHIT">
|
||
<span class='line'>1652</span> </span><span class="WHIT"> </span><span class="NAME">protocol</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">location.protocol</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1653</span> </span><span class="WHIT"> </span><span class="NAME">hostname</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">location.hostname</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1654</span> </span><span class="WHIT"> </span><span class="NAME">port</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">location.port</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1655</span> </span><span class="WHIT"> </span><span class="NAME">host</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">location.host</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1656</span> </span><span class="WHIT"> </span><span class="COMM">// local file @ IE: C:\xx\xx\ff, others: /C:/xx/xx/ff</span><span class="WHIT">
|
||
<span class='line'>1657</span> </span><span class="WHIT"> </span><span class="NAME">pathname</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">location.pathname</span><span class="WHIT">
|
||
<span class='line'>1658</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1659</span> </span><span class="WHIT"> </span><span class="NAME">URI.URI</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1660</span>
|
||
<span class='line'>1661</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1662</span> </span><span class="WHIT"> </span><span class="NAME">URI.protocol</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1663</span> </span><span class="WHIT"> </span><span class="NAME">URI._protocol</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">URI.protocol.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1664</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('protocol [' + URI._protocol + ']');</span><span class="WHIT">
|
||
<span class='line'>1665</span>
|
||
<span class='line'>1666</span> </span><span class="WHIT"> </span><span class="COMM">/* ** filename 可能歸至m[4]!
|
||
<span class='line'>1667</span> * 判斷準則:
|
||
<span class='line'>1668</span> * gsh.sdf.df#dhfjk filename|hostname
|
||
<span class='line'>1669</span> * gsh.sdf.df/dhfjk hostname
|
||
<span class='line'>1670</span> * gsh.sdf.df?dhfjk filename
|
||
<span class='line'>1671</span> * gsh.sdf.df filename
|
||
<span class='line'>1672</span> */</span><span class="WHIT">
|
||
<span class='line'>1673</span> </span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1674</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="REGX">/^\/[A-Za-z]:$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="REGX">/[@:]/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1675</span> </span><span class="WHIT"> </span><span class="COMM">// 處理 username:password</span><span class="WHIT">
|
||
<span class='line'>1676</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">h.match</span><span class="PUNC">(</span><span class="REGX">/^([^@]*)@(.+)$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1677</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/^([^:]+)(:(.*))?$/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1678</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1679</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1680</span> </span><span class="WHIT"> </span><span class="NAME">URI.username</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1681</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1682</span> </span><span class="WHIT"> </span><span class="NAME">URI.password</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1683</span> </span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1684</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1685</span>
|
||
<span class='line'>1686</span> </span><span class="WHIT"> </span><span class="COMM">// 處理 host</span><span class="WHIT">
|
||
<span class='line'>1687</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">h.match</span><span class="PUNC">(</span><span class="REGX">/^([^\/#?&\s:]+)(:(\d{1,5}))?$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1688</span> </span><span class="WHIT"> </span><span class="COMM">// host=hostname:port</span><span class="WHIT">
|
||
<span class='line'>1689</span> </span><span class="WHIT"> </span><span class="NAME">URI.host</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">URI.hostname</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1690</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1691</span> </span><span class="WHIT"> </span><span class="NAME">URI.port</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1692</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1693</span> </span><span class="WHIT"> </span><span class="NAME">http</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">80</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1694</span> </span><span class="WHIT"> </span><span class="NAME">ftp</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">21</span><span class="WHIT">
|
||
<span class='line'>1695</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">[</span><span class="NAME">URI._protocol</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1696</span> </span><span class="WHIT"> </span><span class="NAME">URI.host</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">':'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">URI.port</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1697</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>1698</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1699</span>
|
||
<span class='line'>1700</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="COMM">// test URI.protocol === 'file:'</span><span class="WHIT">
|
||
<span class='line'>1701</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1702</span> </span><span class="WHIT"> </span><span class="COMM">//if (!h) library_namespace.warn('將[' + p + ']當作 pathname!');</span><span class="WHIT">
|
||
<span class='line'>1703</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('local file: [' + location.pathname + ']'),</span><span class="WHIT">
|
||
<span class='line'>1704</span>
|
||
<span class='line'>1705</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="REGX">/^([^%]+|%[a-f\d]{2})+$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1706</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="STRN">'encoding error: ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1707</span>
|
||
<span class='line'>1708</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">p.match</span><span class="PUNC">(</span><span class="REGX">/^(((\/.*)\/)?([^\/#?]*))?(\?([^#]*))?(#(.*))?$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1709</span> </span><span class="WHIT"> </span><span class="COMM">// pathname={path}filename</span><span class="WHIT">
|
||
<span class='line'>1710</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.warn('pathname: [' + m + ']'),</span><span class="WHIT">
|
||
<span class='line'>1711</span> </span><span class="WHIT"> </span><span class="COMM">// .path 會隨不同 OS 之 local file 表示法作變動!</span><span class="WHIT">
|
||
<span class='line'>1712</span> </span><span class="WHIT"> </span><span class="NAME">URI.path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/^\/[A-Za-z]:/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">URI.pathname</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\//g</span><span class="PUNC">,</span><span class="STRN">'\\'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1713</span> </span><span class="WHIT"> </span><span class="NAME">URI.filename</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1714</span> </span><span class="WHIT"> </span><span class="NAME">URI.search</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">5</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">URI._search</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">6</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>1715</span> </span><span class="WHIT"> </span><span class="NAME">URI.hash</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">7</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">URI._hash</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">8</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1716</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1717</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1718</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1719</span> </span><span class="WHIT"> </span><span class="NAME">URI.path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">URI.pathname.replace</span><span class="PUNC">(</span><span class="REGX">/[^\/]+$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1720</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1721</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('path: [' + URI.path + ']'),</span><span class="WHIT">
|
||
<span class='line'>1722</span>
|
||
<span class='line'>1723</span>
|
||
<span class='line'>1724</span> </span><span class="WHIT"> </span><span class="COMM">// href=protocol:(//)?username:password@hostname:port/path/filename?search#hash</span><span class="WHIT">
|
||
<span class='line'>1725</span> </span><span class="WHIT"> </span><span class="NAME">URI.href</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">URI.protocol</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">URI.protocol</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'//'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1726</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">URI.username</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">URI.username</span><span class="WHIT">
|
||
<span class='line'>1727</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">URI.password</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">':'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">URI.password</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'@'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1728</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">URI.host</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">URI.pathname</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">URI.search</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">URI.hash</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1729</span>
|
||
<span class='line'>1730</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('href: [' + URI.href + ']');</span><span class="WHIT">
|
||
<span class='line'>1731</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">URI</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1732</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1733</span>
|
||
<span class='line'>1734</span>
|
||
<span class='line'>1735</span>
|
||
<span class='line'>1736</span>
|
||
<span class='line'>1737</span>
|
||
<span class='line'>1738</span>
|
||
<span class='line'>1739</span> </span><span class="COMM">/* Copy id(or object) to user's clipboard or Paste clipboard to id(or object).
|
||
<span class='line'>1740</span>
|
||
<span class='line'>1741</span> return the value set to clipboard
|
||
<span class='line'>1742</span> http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_textrange.asp
|
||
<span class='line'>1743</span> http://msdn.microsoft.com/workshop/author/dhtml/reference/collections/textrange.asp
|
||
<span class='line'>1744</span> http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/execcommand.asp
|
||
<span class='line'>1745</span> way 2:use window.clipboardData http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/clipboarddata.asp
|
||
<span class='line'>1746</span>
|
||
<span class='line'>1747</span> clipboardFunction() paste/get clipboard
|
||
<span class='line'>1748</span> clipboardFunction(0,divObj) paste/get clipboard to divObj
|
||
<span class='line'>1749</span> clipboardFunction(1,'divObj name') Copy divObj to clipboard/set clipboard
|
||
<span class='line'>1750</span> clipboardFunction(2,'dcfvdf') set clipboard by string
|
||
<span class='line'>1751</span> clipboardFunction(3,divObj) Copies divObj to the clipboard/set clipboard and then deletes it. *return the value set to clipboard
|
||
<span class='line'>1752</span> */</span><span class="WHIT">
|
||
<span class='line'>1753</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">clipboardFunctionObj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'clipboardFunctionDiv'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1754</span> </span><span class="COMM">//clipboardFunction[generateCode.dLK]='clipboardFunctionObj';</span><span class="WHIT">
|
||
<span class='line'>1755</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">clipboardFunction</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// method,object/(string)set value</span><span class="WHIT">
|
||
<span class='line'>1756</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">window.navigator.appName</span><span class="PUNC">==</span><span class="STRN">"Microsoft Internet Explorer"</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1757</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">O</span><span class="PUNC">,</span><span class="NAME">tN</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1758</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1759</span> </span><span class="WHIT"> </span><span class="COMM">// try .nodeName instead of .tagName http://twpug.net/modules/smartsection/item.php?itemid=35</span><span class="WHIT">
|
||
<span class='line'>1760</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">||</span><span class="PUNC">(</span><span class="NAME">tN</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">o.tagName</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="STRN">'textarea'</span><span class="PUNC">&&</span><span class="NAME">tN</span><span class="PUNC">!=</span><span class="STRN">'select'</span><span class="PUNC">&&</span><span class="NAME">tN</span><span class="PUNC">!=</span><span class="STRN">'option'</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">tN</span><span class="PUNC">!=</span><span class="STRN">'input'</span><span class="PUNC">||</span><span class="NAME">o.type</span><span class="PUNC">!=</span><span class="STRN">'text'</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">O</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">clipboardFunctionObj</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// textarea,select,option,input需使用.value! o.type!='INPUT'||o.type!='text':這樣大概也沒copy的價值了吧,應該會出現錯誤。</span><span class="WHIT">
|
||
<span class='line'>1761</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">document.body.appendChild</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'textarea'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">o.id</span><span class="PUNC">=</span><span class="NAME">clipboardFunctionObj</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// 只對IE5.5之後有用</span><span class="WHIT">
|
||
<span class='line'>1762</span> </span><span class="WHIT"> </span><span class="COMM">//var t=document.body.createTextRange();t.moveToElementText(o);</span><span class="WHIT">
|
||
<span class='line'>1763</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="NAME">o.value</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">O</span><span class="PUNC">)</span><span class="NAME">o.value</span><span class="PUNC">=</span><span class="NAME">O.innerText</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">==</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">o.value</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1764</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o.id</span><span class="PUNC">==</span><span class="NAME">clipboardFunctionObj</span><span class="PUNC">)</span><span class="NAME">o.style.display</span><span class="PUNC">=</span><span class="STRN">'block'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 得出現才能execCommand()</span><span class="WHIT">
|
||
<span class='line'>1765</span> </span><span class="WHIT"> </span><span class="NAME">o.createTextRange</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="COMM">//TextRange Object</span><span class="WHIT">
|
||
<span class='line'>1766</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">execCommand</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">?</span><span class="NAME">m</span><span class="PUNC">==</span><span class="NUMB">3</span><span class="PUNC">?</span><span class="STRN">"Cut"</span><span class="PUNC">:</span><span class="STRN">"Copy"</span><span class="PUNC">:</span><span class="STRN">"Paste"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1767</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o.id</span><span class="PUNC">==</span><span class="NAME">clipboardFunctionObj</span><span class="PUNC">)</span><span class="NAME">o.style.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1768</span> </span><span class="WHIT"> </span><span class="COMM">//t.execCommand("ForeColor","false","plum"),t.execCommand("BackColor","false","glay");</span><span class="WHIT">
|
||
<span class='line'>1769</span> </span><span class="WHIT"> </span><span class="COMM">//alert(o.tagName+'\n'+o.id+'\n['+o.innerText+']\n'+(m?m==3?"Cut":"Copy":"Paste"));</span><span class="WHIT">
|
||
<span class='line'>1770</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">!=</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">o.value</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1771</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">O</span><span class="PUNC">)</span><span class="NAME">O.innerText</span><span class="PUNC">=</span><span class="NAME">o.value</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1772</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1773</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1774</span>
|
||
<span class='line'>1775</span> </span><span class="COMM">// http://www.mozilla.org/xpfe/xptoolkit/clipboard.html</span><span class="WHIT">
|
||
<span class='line'>1776</span> </span><span class="COMM">// http://mozilla.org/editor/midasdemo/securityprefs.html</span><span class="WHIT">
|
||
<span class='line'>1777</span> </span><span class="COMM">// http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/06/21/4850.aspx</span><span class="WHIT">
|
||
<span class='line'>1778</span> </span><span class="COMM">// http://www.webdeveloper.com/forum/archive/index.php/t-170520.html</span><span class="WHIT">
|
||
<span class='line'>1779</span> </span><span class="COMM">// http://forum.moztw.org/viewtopic.php?p=131407</span><span class="WHIT">
|
||
<span class='line'>1780</span> </span><span class="COMM">/*
|
||
<span class='line'>1781</span> if(window.navigator.appName=="Netscape"){ // …不能用!
|
||
<span class='line'>1782</span> if(typeof o=='string')o=document.getElementById(o);
|
||
<span class='line'>1783</span> if(m==2||!o||o.tagName!='TEXTAREA'&&o.tagName!='SELECT'&&o.tagName!='OPTION'&&(o.tagName!='INPUT'||o.type!='text'))return; // 無法設定
|
||
<span class='line'>1784</span>
|
||
<span class='line'>1785</span> if(!Zwischenablage){ // 初始設定
|
||
<span class='line'>1786</span> netscape.security.PrivilegeManager.enablePrivilege("UniversalSystemClipboardAccess");
|
||
<span class='line'>1787</span> //var fr=new java.awt.Frame();
|
||
<span class='line'>1788</span> Zwischenablage=new java.awt.Frame().getToolkit().getSystemClipboard();
|
||
<span class='line'>1789</span> }
|
||
<span class='line'>1790</span>
|
||
<span class='line'>1791</span> if(m==0){
|
||
<span class='line'>1792</span> var Inhalt=Zwischenablage.getContents(null);
|
||
<span class='line'>1793</span> if(Inhalt!=null)o.value=Inhalt.getTransferData(java.awt.datatransfer.DataFlavor.stringFlavor);
|
||
<span class='line'>1794</span> }
|
||
<span class='line'>1795</span> else{ // m=1,3
|
||
<span class='line'>1796</span> o.select();
|
||
<span class='line'>1797</span> Zwischenablage.setContents(new java.awt.datatransfer.StringSelection(o.value),null);
|
||
<span class='line'>1798</span> }
|
||
<span class='line'>1799</span>
|
||
<span class='line'>1800</span> return o.value;
|
||
<span class='line'>1801</span> }
|
||
<span class='line'>1802</span> */</span><span class="WHIT">
|
||
<span class='line'>1803</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// clipboardFunction()</span><span class="WHIT">
|
||
<span class='line'>1804</span>
|
||
<span class='line'>1805</span>
|
||
<span class='line'>1806</span>
|
||
<span class='line'>1807</span>
|
||
<span class='line'>1808</span> </span><span class="NAME">Clipboard</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1809</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1810</span>
|
||
<span class='line'>1811</span>
|
||
<span class='line'>1812</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>1813</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>1814</span> </span><span class="COMM">// 2010/1/15 00:17:38</span><span class="WHIT">
|
||
<span class='line'>1815</span> </span><span class="COMM">// IE, FF only</span><span class="WHIT">
|
||
<span class='line'>1816</span> </span><span class="COMM">// http://www.jeffothy.com/weblog/clipboard-copy/</span><span class="WHIT">
|
||
<span class='line'>1817</span> </span><span class="COMM">// http://bravo9.com/journal/copying-into-the-clipboard-with-javascript-in-firefox-safari-ie-opera-292559a2-cc6c-4ebf-9724-d23e8bc5ad8a/</span><span class="WHIT">
|
||
<span class='line'>1818</span> </span><span class="COMM">// http://code.google.com/p/zeroclipboard/</span><span class="WHIT">
|
||
<span class='line'>1819</span> </span><span class="NAME">copy_to_clipboard</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">text</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1820</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">clip</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1821</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">clip</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.clipboardData</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1822</span> </span><span class="WHIT"> </span><span class="NAME">clip.clearData</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1823</span> </span><span class="WHIT"> </span><span class="NAME">clip.setData</span><span class="PUNC">(</span><span class="STRN">'Text'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">text</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1824</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">is_DOM</span><span class="PUNC">(</span><span class="STRN">'Components'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1825</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.require_netscape_privilege</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>1826</span> </span><span class="WHIT"> </span><span class="COMM">// 在您的機器上執行或安裝軟體</span><span class="WHIT">
|
||
<span class='line'>1827</span> </span><span class="WHIT"> </span><span class="STRN">'UniversalXPConnect'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1828</span> </span><span class="WHIT"> </span><span class="COMM">// https://developer.mozilla.org/en/Using_the_Clipboard</span><span class="WHIT">
|
||
<span class='line'>1829</span> </span><span class="WHIT"> </span><span class="COMM">// [xpconnect wrapped nsIClipboardHelper]</span><span class="WHIT">
|
||
<span class='line'>1830</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Components.classes</span><span class="PUNC">[</span><span class="STRN">"@mozilla.org/widget/clipboardhelper;1"</span><span class="PUNC">]</span><span class="WHIT">
|
||
<span class='line'>1831</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">getService</span><span class="PUNC">(</span><span class="NAME">Components.interfaces.nsIClipboardHelper</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1832</span> </span><span class="WHIT"> </span><span class="COMM">// 跳出函數即無效,因此不能 cache。</span><span class="WHIT">
|
||
<span class='line'>1833</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">copyString</span><span class="PUNC">(</span><span class="NAME">text</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1834</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1835</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1836</span> </span><span class="WHIT"> </span><span class="COMM">//else if (navigator.userAgent.indexOf("Opera") != -1)</span><span class="WHIT">
|
||
<span class='line'>1837</span> </span><span class="WHIT"> </span><span class="COMM">// window.location = text;</span><span class="WHIT">
|
||
<span class='line'>1838</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1839</span>
|
||
<span class='line'>1840</span>
|
||
<span class='line'>1841</span>
|
||
<span class='line'>1842</span> </span><span class="COMM">/* 2009/5/13 21:21:49
|
||
<span class='line'>1843</span> unfinished
|
||
<span class='line'>1844</span> */</span><span class="WHIT">
|
||
<span class='line'>1845</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">clipB</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1846</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1847</span> </span><span class="NAME">clipB.start_op</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1848</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.temp_obj</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1849</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1850</span> </span><span class="WHIT"> </span><span class="NAME">document.body.appendChild</span><span class="PUNC">(</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1851</span> </span><span class="WHIT"> </span><span class="COMM">// for modify</span><span class="WHIT">
|
||
<span class='line'>1852</span> </span><span class="WHIT"> </span><span class="NAME">o.contentEditable</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1853</span> </span><span class="WHIT"> </span><span class="COMM">// o.style.height=0;o.style.width=0;</span><span class="WHIT">
|
||
<span class='line'>1854</span> </span><span class="WHIT"> </span><span class="NAME">this.temp_obj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1855</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1856</span>
|
||
<span class='line'>1857</span> </span><span class="WHIT"> </span><span class="NAME">document.selection.empty</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1858</span> </span><span class="WHIT"> </span><span class="COMM">// initial</span><span class="WHIT">
|
||
<span class='line'>1859</span> </span><span class="WHIT"> </span><span class="NAME">o.innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1860</span> </span><span class="WHIT"> </span><span class="COMM">// 得出現才能 focus(), execCommand()</span><span class="WHIT">
|
||
<span class='line'>1861</span> </span><span class="WHIT"> </span><span class="NAME">o.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'block'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1862</span> </span><span class="WHIT"> </span><span class="NAME">o.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1863</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1864</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1865</span> </span><span class="NAME">clipB.end_op</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1866</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.temp_obj</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1867</span> </span><span class="WHIT"> </span><span class="NAME">document.selection.empty</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1868</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1869</span> </span><span class="WHIT"> </span><span class="NAME">o.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1870</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1871</span> </span><span class="COMM">// return [text, obj]</span><span class="WHIT">
|
||
<span class='line'>1872</span> </span><span class="NAME">clipB.get_obj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1873</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1874</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="STRN">'innerHTML'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT">
|
||
<span class='line'>1875</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1876</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">t.innerHTML</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1877</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1878</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1879</span> </span><span class="NAME">clipB.paste_to</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1880</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.get_obj</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1881</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1882</span> </span><span class="WHIT"> </span><span class="NAME">o.innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.get</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1883</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1884</span> </span><span class="NAME">clipB.set</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1885</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.get_obj</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1886</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1887</span> </span><span class="COMM">// get HTML</span><span class="WHIT">
|
||
<span class='line'>1888</span> </span><span class="NAME">clipB.get</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1889</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.start_op</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.selection.createRange</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1890</span> </span><span class="WHIT"> </span><span class="NAME">r.select</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1891</span> </span><span class="WHIT"> </span><span class="NAME">r.execCommand</span><span class="PUNC">(</span><span class="STRN">'Paste'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1892</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">r.htmlText</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">r.text</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1893</span> </span><span class="WHIT"> </span><span class="NAME">this.end_op</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1894</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">o.innerHTML</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">o.innerText</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1895</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1896</span> </span><span class="NAME">clipB.cut_from</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1897</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.get_obj</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1898</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1899</span>
|
||
<span class='line'>1900</span>
|
||
<span class='line'>1901</span> </span><span class="COMM">//從後面調過來的</span><span class="WHIT">
|
||
<span class='line'>1902</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">disabledKM</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">scrollToXY</span><span class="PUNC">,</span><span class="NAME">scrollToInterval</span><span class="PUNC">,</span><span class="NAME">scrollToOK</span><span class="PUNC">,</span><span class="NAME">doAlertDivName</span><span class="PUNC">,</span><span class="NAME">doAlertOldScrollLocation</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1903</span>
|
||
<span class='line'>1904</span>
|
||
<span class='line'>1905</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>1906</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>1907</span> </span><span class="COMM">/**
|
||
<span class='line'>1908</span> * 設定document.cookie.
|
||
<span class='line'>1909</span> * You can store up to 20 name=value pairs in a cookie, and the cookie is always returned as a string of all the cookies that apply to the page.
|
||
<span class='line'>1910</span> * TODO:
|
||
<span class='line'>1911</span> * HTML5 localStorage (name/value item pairs).
|
||
<span class='line'>1912</span> * test various values.
|
||
<span class='line'>1913</span> * document.cookie.setPath("/");
|
||
<span class='line'>1914</span>
|
||
<span class='line'>1915</span> * @example
|
||
<span class='line'>1916</span> 範例:
|
||
<span class='line'>1917</span> // delete domain
|
||
<span class='line'>1918</span> set_cookie('domain',0);
|
||
<span class='line'>1919</span> // 一個月(30 days)
|
||
<span class='line'>1920</span> set_cookie('expires',30);
|
||
<span class='line'>1921</span> // 設定name之值為jj
|
||
<span class='line'>1922</span> set_cookie(name,'jj');
|
||
<span class='line'>1923</span> // 設定name之值為56
|
||
<span class='line'>1924</span> set_cookie(name,56);
|
||
<span class='line'>1925</span> // 除去name
|
||
<span class='line'>1926</span> set_cookie(name);
|
||
<span class='line'>1927</span> // 設給本host全部使用
|
||
<span class='line'>1928</span> set_cookie(_.set_cookie.f.set_root);
|
||
<span class='line'>1929</span> // 設給本domain使用
|
||
<span class='line'>1930</span> set_cookie(_.set_cookie.f.set_domain);
|
||
<span class='line'>1931</span> // 依現有設定除去所有值
|
||
<span class='line'>1932</span> set_cookie(_.set_cookie.f.delete_all);
|
||
<span class='line'>1933</span> // 除去所有值
|
||
<span class='line'>1934</span> set_cookie(_.set_cookie.f.delete_all_root);
|
||
<span class='line'>1935</span> // 永久儲存(千年)
|
||
<span class='line'>1936</span> set_cookie(_.set_cookie.f.forever);
|
||
<span class='line'>1937</span> // 準確設定這之後只在這次瀏覽使用這些cookie,也可用set_cookie('expires',-1);
|
||
<span class='line'>1938</span> set_cookie(_.set_cookie.f.moment);
|
||
<span class='line'>1939</span> // 將expires設定成forever或moment後再改回來(不加expires設定)
|
||
<span class='line'>1940</span> set_cookie('expires',0);
|
||
<span class='line'>1941</span>
|
||
<span class='line'>1942</span> * @param {String|Object|_module_.set_cookie.f} name set_cookie.f flag | varoius name
|
||
<span class='line'>1943</span> * @param value varoius value
|
||
<span class='line'>1944</span> * @param {Boolean|Object} config 若對於特殊設定僅暫時設定時,設定此項。
|
||
<span class='line'>1945</span> * @returns
|
||
<span class='line'>1946</span> * @see
|
||
<span class='line'>1947</span> * Chrome doesn't support cookies for local files unless you start it with the --enable-file-cookies flag.
|
||
<span class='line'>1948</span> * chrome.exe --allow-file-access-from-files --enable-extension-timeline-api --enable-file-cookies
|
||
<span class='line'>1949</span> * http://stackoverflow.com/questions/335244/why-does-chrome-ignore-local-jquery-cookies
|
||
<span class='line'>1950</span> * http://code.google.com/p/chromium/issues/detail?id=535
|
||
<span class='line'>1951</span> * @memberOf CeL.net.web
|
||
<span class='line'>1952</span> */</span><span class="WHIT">
|
||
<span class='line'>1953</span> </span><span class="NAME">set_cookie</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1954</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">is_DOM</span><span class="PUNC">(</span><span class="STRN">'document'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.cookie</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT">
|
||
<span class='line'>1955</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1956</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1957</span>
|
||
<span class='line'>1958</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.set_cookie</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.f</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1959</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">config</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1960</span> </span><span class="WHIT"> </span><span class="COMM">// 預設傳到 default</span><span class="WHIT">
|
||
<span class='line'>1961</span> </span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.c</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1962</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">library_namespace.is_Object</span><span class="PUNC">(</span><span class="NAME">config</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1963</span> </span><span class="WHIT"> </span><span class="COMM">// document.cookie 不須每次詳細設定,但這樣可以選擇 {} / {..} / true</span><span class="WHIT">
|
||
<span class='line'>1964</span> </span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.extend</span><span class="PUNC">(</span><span class="NAME">_s.c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1965</span>
|
||
<span class='line'>1966</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Object</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1967</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1968</span> </span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1969</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">config</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1970</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1971</span>
|
||
<span class='line'>1972</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1973</span> </span><span class="WHIT"> </span><span class="COMM">// This will cause error in Phoenix 0.1:</span><span class="WHIT">
|
||
<span class='line'>1974</span> </span><span class="WHIT"> </span><span class="COMM">// Error: uncaught exception: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIDOMNavigator.cookieEnabled]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: http://lyrics.meicho.com.tw/game/game.js :: set_cookie :: line 737" data: no]</span><span class="WHIT">
|
||
<span class='line'>1975</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">window.navigator</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">window.navigator.cookieEnabled</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1976</span> </span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1977</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1978</span> </span><span class="WHIT"> </span><span class="NAME">CeL.warn</span><span class="PUNC">(</span><span class="STRN">'set_cookie: We cannot use cookie!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1979</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1980</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>1981</span>
|
||
<span class='line'>1982</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('set_cookie: ' + name + ' = [' + value + ']', 1);</span><span class="WHIT">
|
||
<span class='line'>1983</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">flag.set_root</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1984</span> </span><span class="WHIT"> </span><span class="COMM">// 設給本 host 全部使用</span><span class="WHIT">
|
||
<span class='line'>1985</span> </span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'path'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1986</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">flag.set_domain</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1987</span> </span><span class="WHIT"> </span><span class="COMM">// 設給本 domain 使用,尚不是很好的判別法。</span><span class="WHIT">
|
||
<span class='line'>1988</span> </span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'domain'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">location.hostname.replace</span><span class="PUNC">(</span><span class="REGX">/^[^.]+\./</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1989</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">flag.forever</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1990</span> </span><span class="WHIT"> </span><span class="COMM">// 永久儲存,date之time值不能>1e16</span><span class="WHIT">
|
||
<span class='line'>1991</span> </span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'expires'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="NAME">e14</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1992</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">flag.moment</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>1993</span> </span><span class="WHIT"> </span><span class="COMM">// 準確設定這之後只在這次瀏覽使用這些cookie</span><span class="WHIT">
|
||
<span class='line'>1994</span> </span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'expires'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>1995</span>
|
||
<span class='line'>1996</span> </span><span class="WHIT"> </span><span class="COMM">// detect special config / 特殊設定</span><span class="WHIT">
|
||
<span class='line'>1997</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT">
|
||
<span class='line'>1998</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name.match</span><span class="PUNC">(</span><span class="REGX">/^(expires|path|domain|secure)$/i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>1999</span> </span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2000</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'expires'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2001</span> </span><span class="WHIT"> </span><span class="COMM">//if(value<8000)value*=86400000;//幾日,86400000=1000*60*60*24</span><span class="WHIT">
|
||
<span class='line'>2002</span> </span><span class="WHIT"> </span><span class="COMM">//value=(new Date(value<3e13?(new Date).getTime()+value:1e14)).toUTCString(); // 3e13~千年</span><span class="WHIT">
|
||
<span class='line'>2003</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="NAME">e14</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">getTime</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2004</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">8</span><span class="NAME">e3</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">86400000</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="NAME">e14</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toUTCString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2005</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2006</span> </span><span class="WHIT"> </span><span class="NAME">config</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2007</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('set_cookie: ' + name + ' = [' + value + ']', 1);</span><span class="WHIT">
|
||
<span class='line'>2008</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2009</span>
|
||
<span class='line'>2010</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2011</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">set</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">flag.delete_all_root</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'expires='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toUTCString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';path=/;'</span><span class="WHIT">
|
||
<span class='line'>2012</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'expires='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toUTCString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT">
|
||
<span class='line'>2013</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">config.expires</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'expires='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">config.expires</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2014</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">config.path</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'path='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">config.path</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2015</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">config.domain</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'domain='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">config.domain</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2016</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">config.secure</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'secure;'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2017</span>
|
||
<span class='line'>2018</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">flag.delete_all</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">flag.delete_all_root</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2019</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>2020</span> var c=document.cookie;
|
||
<span class='line'>2021</span> while(c.match(/([^=;]+)(=[^;]{0,})?/)){
|
||
<span class='line'>2022</span> c=c.substr(RegExp.lastIndex);
|
||
<span class='line'>2023</span> if(!/expires/i.test(RegExp.$1))document.cookie=RegExp.$1+'=;'+set;
|
||
<span class='line'>2024</span> }
|
||
<span class='line'>2025</span> */</span><span class="WHIT">
|
||
<span class='line'>2026</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.cookie.split</span><span class="PUNC">(</span><span class="STRN">';'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">p.length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2027</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="REGX">/^\s*expires\s*$/i</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">'='</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2028</span> </span><span class="WHIT"> </span><span class="NAME">document.cookie</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'=;'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">set</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2029</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">document.cookie</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2030</span>
|
||
<span class='line'>2031</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2032</span> </span><span class="WHIT"> </span><span class="COMM">// 可用escape(value)/unescape()來設定,速度會比較快,但佔空間。</span><span class="WHIT">
|
||
<span class='line'>2033</span> </span><span class="WHIT"> </span><span class="COMM">//value=name+'='+(typeof value=='undefined'?'':dQuote(''+value).replace(/([\01-\11\13-\14\16-\40=;])/g,function($0,$1){var c=$1.charCodeAt(0),d=c.toString(16);return'\\x'+(c<16?'0':'')+d;}))+';'+set;</span><span class="WHIT">
|
||
<span class='line'>2034</span> </span><span class="WHIT"> </span><span class="COMM">// 2004/11/23 21:11 因為cookie儲存成中文時會fault,所以只好還是使用escape()</span><span class="WHIT">
|
||
<span class='line'>2035</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">escape</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT">
|
||
<span class='line'>2036</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">escape</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT">
|
||
<span class='line'>2037</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">set</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2038</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('set_cookie: [' + value + ']', 1);</span><span class="WHIT">
|
||
<span class='line'>2039</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('set_cookie: [' + document.cookie + ']', 1);</span><span class="WHIT">
|
||
<span class='line'>2040</span> </span><span class="WHIT"> </span><span class="COMM">// 長度過長時(約4KB)會清空,連原先的值都不復存在!</span><span class="WHIT">
|
||
<span class='line'>2041</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">value.length</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">4096</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">document.cookie</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT">
|
||
<span class='line'>2042</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2043</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2044</span>
|
||
<span class='line'>2045</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2046</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2047</span>
|
||
<span class='line'>2048</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>2049</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>2050</span> </span><span class="NAME">set_cookie.f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2051</span> </span><span class="WHIT"> </span><span class="NAME">moment</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2052</span> </span><span class="WHIT"> </span><span class="NAME">delete_all</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2053</span> </span><span class="WHIT"> </span><span class="NAME">delete_all_root</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2054</span> </span><span class="WHIT"> </span><span class="NAME">set_root</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2055</span> </span><span class="WHIT"> </span><span class="NAME">set_domain</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">5</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2056</span> </span><span class="WHIT"> </span><span class="NAME">forever</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">6</span><span class="WHIT">
|
||
<span class='line'>2057</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2058</span>
|
||
<span class='line'>2059</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>2060</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>2061</span> </span><span class="COMM">// 特殊設定</span><span class="WHIT">
|
||
<span class='line'>2062</span> </span><span class="NAME">set_cookie.c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2063</span> </span><span class="WHIT"> </span><span class="NAME">expires</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2064</span> </span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2065</span> </span><span class="WHIT"> </span><span class="NAME">domain</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2066</span> </span><span class="WHIT"> </span><span class="NAME">secure</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
|
||
<span class='line'>2067</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2068</span>
|
||
<span class='line'>2069</span> </span><span class="COMM">/* 取得document.cookie中所需之值 看起來只能取得相同domain,有設定的path之cookie
|
||
<span class='line'>2070</span>
|
||
<span class='line'>2071</span> flag=0: only get the lastest matched value;
|
||
<span class='line'>2072</span> flag=1: only get all matched in a array;
|
||
<span class='line'>2073</span> other flag: auto detect by name
|
||
<span class='line'>2074</span>
|
||
<span class='line'>2075</span> get_cookie(name); // 取得name之值,亦可用RegExp:if(c=get_cookie())c['name1']==value1;
|
||
<span class='line'>2076</span> get_cookie('nn[^=]*'); // 取得所有nn開頭之組合
|
||
<span class='line'>2077</span> get_cookie(); // 取得所有name=value組
|
||
<span class='line'>2078</span>
|
||
<span class='line'>2079</span> 因為 cookie 較容易遭到竄改或是出問題,建議設定 verify。
|
||
<span class='line'>2080</span> */</span><span class="WHIT">
|
||
<span class='line'>2081</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>2082</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>2083</span> </span><span class="COMM">//get_cookie[generateCode.dLK]='renew_RegExp_flag';</span><span class="WHIT">
|
||
<span class='line'>2084</span> </span><span class="NAME">get_cookie</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="NAME">flag</span><span class="PUNC">,</span><span class="NAME">verify</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2085</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">is_DOM</span><span class="PUNC">(</span><span class="STRN">'document'</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">document.cookie</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2086</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">name</span><span class="PUNC">)</span><span class="NAME">name</span><span class="PUNC">=</span><span class="STRN">'[^;=\\s]+'</span><span class="PUNC">;</span><span class="COMM">//\w+</span><span class="WHIT">
|
||
<span class='line'>2087</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="NAME">R</span><span class="PUNC">=</span><span class="NAME">name</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">?</span><span class="NAME">name</span><span class="PUNC">:</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">'('</span><span class="PUNC">+</span><span class="NAME">escape</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">')\\s*=\\s*([^;=\\s]*)'</span><span class="PUNC">,</span><span class="STRN">'g'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2088</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">document.cookie.match</span><span class="PUNC">(</span><span class="NAME">R</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2089</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('get_cookie: [' + R + '] = ['+m+']', 1);</span><span class="WHIT">
|
||
<span class='line'>2090</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('get_cookie: [' + document.cookie + ']', 1);</span><span class="WHIT">
|
||
<span class='line'>2091</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">m</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2092</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">R.global</span><span class="PUNC">)</span><span class="NAME">R</span><span class="PUNC">=</span><span class="NAME">library_namespace.renew_RegExp_flag</span><span class="PUNC">(</span><span class="NAME">R</span><span class="PUNC">,</span><span class="STRN">'-g'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2093</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m.length</span><span class="PUNC">></span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2094</span> </span><span class="WHIT"> </span><span class="COMM">// 取最後一個</span><span class="WHIT">
|
||
<span class='line'>2095</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">flag</span><span class="PUNC">==</span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2096</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">m.slice</span><span class="PUNC">(</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2097</span> </span><span class="WHIT"> </span><span class="COMM">// 表示不是因name為RegExp而得出之值.</span><span class="WHIT">
|
||
<span class='line'>2098</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: bug: 找 "count" 可能找到 "data_count"!!</span><span class="WHIT">
|
||
<span class='line'>2099</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m.length</span><span class="PUNC">===</span><span class="NUMB">1</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">===</span><span class="STRN">'string'</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="NAME">R</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">===</span><span class="NAME">escape</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="WHIT">
|
||
<span class='line'>2100</span> </span><span class="COMM">/*
|
||
<span class='line'>2101</span> if((m=c[2])&&((c=m.charAt(0))=='"'||c=="'")&&c==m.slice(-1)) // 將值為".."或'..'轉為引號中表示之值
|
||
<span class='line'>2102</span> try{
|
||
<span class='line'>2103</span> //alert('get 1:\n'+m+'\n'+unescape(m));
|
||
<span class='line'>2104</span> window.eval('c='+m);return c;
|
||
<span class='line'>2105</span> }catch(e){}
|
||
<span class='line'>2106</span> return m;
|
||
<span class='line'>2107</span> */</span><span class="WHIT">
|
||
<span class='line'>2108</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">unescape</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2109</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2110</span>
|
||
<span class='line'>2111</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">v</span><span class="PUNC">,</span><span class="NAME">M</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2112</span> </span><span class="WHIT"> </span><span class="COMM">//alert(document.cookie+'\n'+R+'\n'+m.length+'\n'+m);</span><span class="WHIT">
|
||
<span class='line'>2113</span>
|
||
<span class='line'>2114</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">m.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2115</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">===</span><span class="STRN">'string'</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">M</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="NAME">R</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2116</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">unescape</span><span class="PUNC">(</span><span class="NAME">M</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">unescape</span><span class="PUNC">(</span><span class="NAME">M</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2117</span> </span><span class="COMM">/*
|
||
<span class='line'>2118</span> for(;i<m.length;i++){
|
||
<span class='line'>2119</span> M=m[i].match(R),v=unescape(M[2]);
|
||
<span class='line'>2120</span> if(v&&((c=v.charAt(0))=='"'||c=="'")&&c==v.slice(-1))
|
||
<span class='line'>2121</span> try{
|
||
<span class='line'>2122</span> //alert('get 2:\n'+v+'\n'+unescape(v));
|
||
<span class='line'>2123</span> window.eval('c='+v);v=c;
|
||
<span class='line'>2124</span> }catch(e){}
|
||
<span class='line'>2125</span> r[M[1]]=v; // 有必要可用unescape(),畢竟那是模範做法。
|
||
<span class='line'>2126</span> }
|
||
<span class='line'>2127</span> */</span><span class="WHIT">
|
||
<span class='line'>2128</span>
|
||
<span class='line'>2129</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2130</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2131</span>
|
||
<span class='line'>2132</span>
|
||
<span class='line'>2133</span> </span><span class="COMM">/* 取得註解部份資料:這個值會連 NewLine 都保存下來
|
||
<span class='line'>2134</span> 其實IE用document.getElementsByTagName('!')就可以了,不管幾層都能到。
|
||
<span class='line'>2135</span> 註解中[!-]需要escape!IE6之div內不能沒東西,所以得加個 (並且得在前面)之後加<!-- -->才有用。
|
||
<span class='line'>2136</span>
|
||
<span class='line'>2137</span> div 從哪裡開始找
|
||
<span class='line'>2138</span> level 最多往下找幾層
|
||
<span class='line'>2139</span> retType 回傳0:node本身,1:註解值
|
||
<span class='line'>2140</span> */</span><span class="WHIT">
|
||
<span class='line'>2141</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">get_comments</span><span class="PUNC">(</span><span class="NAME">div</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">level</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">retType</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2142</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">div</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">div</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.document</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2143</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">get_comments</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2144</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">_f.endLevel</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">_f.endLevel</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2145</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">level</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">level</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">_f.a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">level</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_f.endLevel</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2146</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">_f.a</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">_f.a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2147</span> </span><span class="WHIT"> </span><span class="NAME">div</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">div.childNodes</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2148</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">div.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2149</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">div</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//if(d.nodeType==8)alert(d.tagName+'\n'+d.nodeName+'\n'+d.nodeType+(d.nodeValue?'\n'+d.nodeValue.slice(0,30):''));</span><span class="WHIT">
|
||
<span class='line'>2150</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d.tagName</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">d.tagName</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'!'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">_f.a.push</span><span class="PUNC">(</span><span class="NAME">retType</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">d.text.replace</span><span class="PUNC">(</span><span class="REGX">/^<!(--)?/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/(--)?>$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//,alert(d.tagName+'\n'+d.text.slice(0,30));</span><span class="WHIT">
|
||
<span class='line'>2151</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d.nodeType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">8</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">_f.a.push</span><span class="PUNC">(</span><span class="NAME">retType</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">d.nodeValue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//alert('* '+_f.a.length+'\n'+d.nodeValue.slice(0,30)); // NS http://allabout.co.jp/career/javascript/closeup/CU20040307/index.htm?FM=cukj&GS=javascript</span><span class="WHIT">
|
||
<span class='line'>2152</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.w3.org/TR/DOM-Level-2-Core/core.html</span><span class="WHIT">
|
||
<span class='line'>2153</span> </span><span class="WHIT"> </span><span class="COMM">// ELEMENT_NODE,ATTRIBUTE_NODE,TEXT_NODE,CDATA_SECTION_NODE,ENTITY_REFERENCE_NODE,ENTITY_NODE,PROCESSING_INSTRUCTION_NODE,COMMENT_NODE,DOCUMENT_NODE,DOCUMENT_TYPE_NODE,DOCUMENT_FRAGMENT_NODE,NOTATION_NODE</span><span class="WHIT">
|
||
<span class='line'>2154</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">level</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">d.childNodes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">level</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">retType</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2155</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2156</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_f.a</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2157</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2158</span> </span><span class="COMM">//window.onload=function(){get_comments();alert(get_comments.a.length);for(var i=0;i<get_comments.a.length;i++)alert('['+get_comments.a[i]+']');};</span><span class="WHIT">
|
||
<span class='line'>2159</span>
|
||
<span class='line'>2160</span>
|
||
<span class='line'>2161</span>
|
||
<span class='line'>2162</span>
|
||
<span class='line'>2163</span>
|
||
<span class='line'>2164</span>
|
||
<span class='line'>2165</span> </span><span class="COMM">/* background image load
|
||
<span class='line'>2166</span> ** 本函數會倒著load!請將優先度高的排後面!
|
||
<span class='line'>2167</span>
|
||
<span class='line'>2168</span> new Image看起來不是個好方法…
|
||
<span class='line'>2169</span> http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/img.asp
|
||
<span class='line'>2170</span>
|
||
<span class='line'>2171</span> var img=new Image(width,heighr);img.onload=function(){docImageElement.src=this.src;}img.src=__SRC__; // onload應在前面,預防設定onload前就已被load?
|
||
<span class='line'>2172</span>
|
||
<span class='line'>2173</span> var bgLoadImgA,bgLoadImgLA;
|
||
<span class='line'>2174</span> function bgLoadImg(){
|
||
<span class='line'>2175</span> if(location.protocol=='file:')return;
|
||
<span class='line'>2176</span> if(typeof bgLoadImgA=='string'){
|
||
<span class='line'>2177</span> var s=[1];
|
||
<span class='line'>2178</span> try{s.pop();bgLoadImgA=bgLoadImgA.split(',');setTimeout('bgLoadImg();',5000);}catch(e){} // 測試舊版可能沒有pop()功能,會出現error
|
||
<span class='line'>2179</span> return;
|
||
<span class='line'>2180</span> }
|
||
<span class='line'>2181</span> if(bgLoadImgA.length){var i=new Image(1,1);i.function(){setTimeout('bgLoadImg();',0);},i.src=typeof getObjURL=='function'?getObjURL(bgLoadImgA.pop()):bgLoadImgA.pop();bgLoadImgLA.push(i);}
|
||
<span class='line'>2182</span> }
|
||
<span class='line'>2183</span>
|
||
<span class='line'>2184</span>
|
||
<span class='line'>2185</span> TODO:
|
||
<span class='line'>2186</span> Javascript uses automatic garbage collection. Set to [null] as well. http://www.thescripts.com/forum/thread95206.html
|
||
<span class='line'>2187</span> 須注意 JavaScript closure and IE 4-6 memory leak! IE 7 seems to have solved the memory leaks. http://anotherblog.spaces.live.com/blog/cns!E9C5235EBD2C699D!458.entry?ppud=0&wa=wsignin1.0
|
||
<span class='line'>2188</span> http://laurens.vd.oever.nl/weblog/items2005/closures/ http://www.blogjava.net/tim-wu/archive/2006/05/29/48729.html
|
||
<span class='line'>2189</span> IE 6對於純粹的Script Objects間的Circular References是可以正確處理的,可惜它處理不了的是JScript與Native Object(例如Dom、ActiveX Object)之間的Circular References。
|
||
<span class='line'>2190</span> P.S. 2007/11/11 似乎已修正?
|
||
<span class='line'>2191</span> */</span><span class="WHIT">
|
||
<span class='line'>2192</span>
|
||
<span class='line'>2193</span> </span><span class="COMM">/* bgLoadImg() Cookie版 2006/3/3 20:08
|
||
<span class='line'>2194</span> ** 本函數正著load!請將優先度高的排前面!
|
||
<span class='line'>2195</span>
|
||
<span class='line'>2196</span> To use:
|
||
<span class='line'>2197</span> ,set_cookie,get_cookie,bgLoadImgId,bgLoadImgI,bgLoadImg
|
||
<span class='line'>2198</span> bgLoadImgId='id_of_this_session',bgLoadImgA='img_url1,img_url2,..'; // ** MUST string!
|
||
<span class='line'>2199</span> function getObjURL(bgLoadImgA_element){return the real URL of bgLoadImgA_element;}
|
||
<span class='line'>2200</span> window.onload="bgLoadImg();"
|
||
<span class='line'>2201</span>
|
||
<span class='line'>2202</span> var bgLoadImgId='bg',bgLoadImgI; // loaded index
|
||
<span class='line'>2203</span> */</span><span class="WHIT">
|
||
<span class='line'>2204</span> </span><span class="COMM">//bgLoadImg[generateCode.dLK]='bgLoadImgId,bgLoadImgI';</span><span class="WHIT">
|
||
<span class='line'>2205</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">bgLoadImg</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2206</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">bgLoadImgM</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'bgLoadImgOK_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">bgLoadImgId</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2207</span> </span><span class="WHIT"> </span><span class="COMM">// alert('_'+bgLoadImgM+','+bgLoadImgI)</span><span class="WHIT">
|
||
<span class='line'>2208</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">bgLoadImgA</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2209</span> </span><span class="WHIT"> </span><span class="COMM">// needless</span><span class="WHIT">
|
||
<span class='line'>2210</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">bgLoadImgA</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">location.protocol</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'file:'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2211</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2212</span> </span><span class="WHIT"> </span><span class="COMM">// http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/readystate_1.asp</span><span class="WHIT">
|
||
<span class='line'>2213</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.readyState</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2214</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'complete'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2215</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">bgLoadImg</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">500</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2216</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2217</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2218</span> </span><span class="WHIT"> </span><span class="COMM">// initialization</span><span class="WHIT">
|
||
<span class='line'>2219</span> </span><span class="WHIT"> </span><span class="NAME">bgLoadImgA</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">bgLoadImgA.replace</span><span class="PUNC">(</span><span class="REGX">/,\s*,/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2220</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">get_cookie</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="WHIT">
|
||
<span class='line'>2221</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">get_cookie</span><span class="PUNC">(</span><span class="NAME">bgLoadImgM</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">bgLoadImgA.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 全部OK後就別再來了。</span><span class="WHIT">
|
||
<span class='line'>2222</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">bgLoadImgI</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2223</span> </span><span class="WHIT"> </span><span class="NAME">bgLoadImgI</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2224</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2225</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">bgLoadImg</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">5</span><span class="NAME">e3</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2226</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2227</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2228</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>2229</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2230</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2231</span>
|
||
<span class='line'>2232</span> </span><span class="WHIT"> </span><span class="COMM">//if(!isNaN(i)&&!bgLoadImgA[i].complete); // timeout</span><span class="WHIT">
|
||
<span class='line'>2233</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">bgLoadImgI</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 防止timeout的備援</span><span class="WHIT">
|
||
<span class='line'>2234</span>
|
||
<span class='line'>2235</span> </span><span class="WHIT"> </span><span class="COMM">// 標記已load counter</span><span class="WHIT">
|
||
<span class='line'>2236</span> </span><span class="WHIT"> </span><span class="COMM">// 假如一個圖一個圖標記,set_cookie在超過二十個之後好像就沒效了…被限制?</span><span class="WHIT">
|
||
<span class='line'>2237</span> </span><span class="WHIT"> </span><span class="NAME">_.set_cookie</span><span class="PUNC">(</span><span class="NAME">bgLoadImgM</span><span class="PUNC">,</span><span class="NAME">bgLoadImgI</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2238</span>
|
||
<span class='line'>2239</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">bgLoadImgI</span><span class="PUNC">==</span><span class="NAME">bgLoadImgA.length</span><span class="PUNC">)</span><span class="NAME">bgLoadImgI</span><span class="PUNC">++</span><span class="PUNC">,</span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'bgLoadImg();'</span><span class="PUNC">,</span><span class="NUMB">500</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 馬上進入判別,最後一個尚未complete</span><span class="WHIT">
|
||
<span class='line'>2240</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">bgLoadImgI</span><span class="PUNC"><</span><span class="NAME">bgLoadImgA.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2241</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">bgLoadImgURL</span><span class="PUNC">=</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">getObjURL</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">?</span><span class="NAME">getObjURL</span><span class="PUNC">(</span><span class="NAME">bgLoadImgA</span><span class="PUNC">[</span><span class="NAME">bgLoadImgI</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NAME">bgLoadImgA</span><span class="PUNC">[</span><span class="NAME">bgLoadImgI</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2242</span> </span><span class="WHIT"> </span><span class="COMM">//setTimeout('bgLoadImg('+bgLoadImgI+')',5e3); // set timeout</span><span class="WHIT">
|
||
<span class='line'>2243</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">bgLoadImgA</span><span class="PUNC">[</span><span class="NAME">bgLoadImgI</span><span class="PUNC">++</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Image</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2244</span> </span><span class="WHIT"> </span><span class="COMM">// 這是個多執行緒技巧:假如使用onload=bgLoadImg,有可能在下一指令碼前就已onload,這樣會造成Stack overflow</span><span class="WHIT">
|
||
<span class='line'>2245</span> </span><span class="WHIT"> </span><span class="NAME">onload</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'bgLoadImg();'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2246</span> </span><span class="WHIT"> </span><span class="NAME">src</span><span class="PUNC">=</span><span class="NAME">bgLoadImgURL</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2247</span> </span><span class="WHIT"> </span><span class="NAME">window.status</span><span class="PUNC">=</span><span class="STRN">'bgLoadImg ['</span><span class="PUNC">+</span><span class="NAME">bgLoadImgURL</span><span class="PUNC">+</span><span class="STRN">']: '</span><span class="PUNC">+</span><span class="NAME">bgLoadImgI</span><span class="PUNC">+</span><span class="STRN">' / '</span><span class="PUNC">+</span><span class="NAME">bgLoadImgA.length</span><span class="PUNC">+</span><span class="STRN">'..'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2248</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2249</span> </span><span class="COMM">/*
|
||
<span class='line'>2250</span> var f=[];
|
||
<span class='line'>2251</span> for(i=0;i<bgLoadImgA.length;i++)if(!bgLoadImgA[i].complete)f.push(bgLoadImgA[i].src);
|
||
<span class='line'>2252</span> if(f.length)_.set_cookie(bgLoadImgM,0);
|
||
<span class='line'>2253</span> window.status='bgLoadImg '+(f.length?'end: failed '+f.length+' / '+bgLoadImgA.length+' ('+f+')':'complete!'),bgLoadImgA=0;
|
||
<span class='line'>2254</span> */</span><span class="WHIT">
|
||
<span class='line'>2255</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2256</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">bgLoadImgA.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2257</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">bgLoadImgA</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">complete</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2258</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2259</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2260</span> </span><span class="WHIT"> </span><span class="NAME">_.set_cookie</span><span class="PUNC">(</span><span class="NAME">bgLoadImgM</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2261</span> </span><span class="WHIT"> </span><span class="NAME">window.status</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'bgLoadImg '</span><span class="WHIT">
|
||
<span class='line'>2262</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'end: failed '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' / '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">bgLoadImgA.length</span><span class="WHIT">
|
||
<span class='line'>2263</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'complete!'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">bgLoadImgA</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2264</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2265</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2266</span>
|
||
<span class='line'>2267</span>
|
||
<span class='line'>2268</span>
|
||
<span class='line'>2269</span> </span><span class="COMM">/* 儲存/回存使用者輸入之form資料用。 2004/11/23 21:38
|
||
<span class='line'>2270</span> *已測試過text(select-one,textarea,password,hidden)/radio/checkbox/select-multiple
|
||
<span class='line'>2271</span> formIdA: form id or id array.不輸入或輸入'',0等表示所有的form
|
||
<span class='line'>2272</span> expires: 不輸入或輸入''表示回存,輸入0會以預設days代替,輸入<0會刪除掉cookie中這項設定。
|
||
<span class='line'>2273</span> targetItemA: 要處理的name。例如'name,tel,email'。假如包括unselect,會處理除了targetItemA之外所有的。
|
||
<span class='line'>2274</span>
|
||
<span class='line'>2275</span> input type="checkbox" value不能包含';'!
|
||
<span class='line'>2276</span> password也會被儲存,得自己排除!
|
||
<span class='line'>2277</span> e.g.,
|
||
<span class='line'>2278</span> cookieForm() recall all items of all forms
|
||
<span class='line'>2279</span> cookieForm(0,1,'email'); save all items named 'email' of all forms
|
||
<span class='line'>2280</span> cookieForm(0,'','email'); recall all items named 'email' of all forms
|
||
<span class='line'>2281</span> cookieForm(0,-1); 消除所有*版面上現有form*之紀錄
|
||
<span class='line'>2282</span>
|
||
<span class='line'>2283</span> TODO:
|
||
<span class='line'>2284</span> 排除名單
|
||
<span class='line'>2285</span> 對於較多的entries,也許需要使用到Object[key]來代替String.indexOf(key)
|
||
<span class='line'>2286</span> */</span><span class="WHIT">
|
||
<span class='line'>2287</span> </span><span class="COMM">//cookieForm[generateCode.dLK]='get_cookie,set_cookie';</span><span class="WHIT">
|
||
<span class='line'>2288</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">cookieForm</span><span class="PUNC">(</span><span class="NAME">formIdA</span><span class="PUNC">,</span><span class="NAME">expires</span><span class="PUNC">,</span><span class="NAME">targetItemA</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2289</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2290</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2291</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">formIdA</span><span class="PUNC">)</span><span class="NAME">formIdA</span><span class="PUNC">=</span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="STRN">'FORM'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">formIdA</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="NAME">formIdA</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NAME">formIdA</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2292</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">n</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">dealO</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// メソッドをプロトタイプではなく、オブジェクト自身にセットしていることです。これでは継承できませんし、ECMAScript のプロトタイプベースのセマンティクスから外れてしまいます。</span><span class="WHIT">
|
||
<span class='line'>2293</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">o.childNodes</span><span class="PUNC">,</span><span class="NAME">sp</span><span class="PUNC">=</span><span class="STRN">';'</span><span class="PUNC">,</span><span class="NAME">e</span><span class="PUNC">,</span><span class="NAME">cn</span><span class="PUNC">,</span><span class="NAME">cv</span><span class="PUNC">,</span><span class="NAME">tp</span><span class="PUNC">;</span><span class="NAME">j</span><span class="PUNC"><</span><span class="NAME">c.length</span><span class="PUNC">;</span><span class="NAME">j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2294</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">hasChildNodes</span><span class="PUNC">)</span><span class="NAME">dealO</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2295</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">e.name</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">e.value</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="COMM">//cv=e.tagName=='TEXTAREA'?e.innerHTML:e.value // TEXTAREA,SELECT,OPTION,INPUT需使用.value!</span><span class="WHIT">
|
||
<span class='line'>2296</span> </span><span class="WHIT"> </span><span class="COMM">//if(!e.value&&e.text)e.value=e.text; // 假如沒有.value,利用.text代替</span><span class="WHIT">
|
||
<span class='line'>2297</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">targetItemA</span><span class="PUNC">)</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">targetItemA.unselect</span><span class="PUNC">&&</span><span class="NAME">targetItemA</span><span class="PUNC">[</span><span class="NAME">e.name</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">targetItemA.unselect</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">targetItemA</span><span class="PUNC">[</span><span class="NAME">e.name</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2298</span> </span><span class="WHIT"> </span><span class="COMM">//alert((isNaN(expires)?'load':'save')+'\n'+n+'::'+e.name+'['+e.type+']='+e.value);</span><span class="WHIT">
|
||
<span class='line'>2299</span> </span><span class="WHIT"> </span><span class="NAME">cn</span><span class="PUNC">=</span><span class="STRN">'cookieForm_'</span><span class="PUNC">+</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">'_'</span><span class="PUNC">+</span><span class="NAME">e.name</span><span class="PUNC">;</span><span class="NAME">cv</span><span class="PUNC">=</span><span class="NAME">e.value</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2300</span> </span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">=</span><span class="NAME">e.type.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//e.tagName=='INPUT'?e.type.toLowerCase():'';</span><span class="WHIT">
|
||
<span class='line'>2301</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">expires</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="PUNC">(</span><span class="NAME">cn</span><span class="PUNC">=</span><span class="NAME">get_cookie</span><span class="PUNC">(</span><span class="NAME">cn</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2302</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="STRN">'radio'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2303</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">cv</span><span class="PUNC">==</span><span class="NAME">cn</span><span class="PUNC">)</span><span class="NAME">e.checked</span><span class="PUNC">=</span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2304</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="STRN">'checkbox'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2305</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">cn.indexOf</span><span class="PUNC">(</span><span class="NAME">sp</span><span class="PUNC">+</span><span class="NAME">cv</span><span class="PUNC">+</span><span class="NAME">sp</span><span class="PUNC">+</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="NAME">e.checked</span><span class="PUNC">=</span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2306</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="STRN">'select-multiple'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2307</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">e.options.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2308</span> </span><span class="WHIT"> </span><span class="NAME">e.options</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">selected</span><span class="PUNC">=</span><span class="NAME">cn.indexOf</span><span class="PUNC">(</span><span class="NAME">sp</span><span class="PUNC">+</span><span class="NAME">e.options</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">value</span><span class="PUNC">+</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2309</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">e.value</span><span class="PUNC">=</span><span class="NAME">cn</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2310</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2311</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="STRN">'radio'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">e.checked</span><span class="PUNC">)</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2312</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="STRN">'checkbox'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2313</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">cv.indexOf</span><span class="PUNC">(</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// value不能包含sp checkbox之cookie形式:[;value1;;value2;value3;;value4;]:value1,3:checked</span><span class="WHIT">
|
||
<span class='line'>2314</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">cv</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">=</span><span class="NAME">get_cookie</span><span class="PUNC">(</span><span class="NAME">cn</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">tp.indexOf</span><span class="PUNC">(</span><span class="NAME">sp</span><span class="PUNC">+</span><span class="NAME">cv</span><span class="PUNC">+</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">?</span><span class="NAME">tp</span><span class="PUNC">:</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">cv</span><span class="PUNC">+</span><span class="NAME">sp</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">e.checked</span><span class="PUNC">?</span><span class="NAME">sp</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2315</span> </span><span class="WHIT"> </span><span class="COMM">//else if(tp=='select-one')cv=e.options[e.selectedIndex].value; // 可省略! 用.selectedIndex會比較快,但更改原文件可能會造成index錯誤</span><span class="WHIT">
|
||
<span class='line'>2316</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="STRN">'select-multiple'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2317</span> </span><span class="WHIT"> </span><span class="NAME">cv</span><span class="PUNC">=</span><span class="NAME">sp</span><span class="PUNC">+</span><span class="NAME">cv</span><span class="PUNC">+</span><span class="NAME">sp</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2318</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">e.selectedIndex</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">e.options.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2319</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">e.options</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">selected</span><span class="PUNC">)</span><span class="NAME">cv</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">e.options</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">value</span><span class="PUNC">+</span><span class="NAME">sp</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2320</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2321</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">expires</span><span class="PUNC">)</span><span class="NAME">_.set_cookie</span><span class="PUNC">(</span><span class="NAME">cn</span><span class="PUNC">,</span><span class="NAME">cv</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2322</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">_.set_cookie</span><span class="PUNC">(</span><span class="NAME">cn</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2323</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2324</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2325</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2326</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2327</span>
|
||
<span class='line'>2328</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">targetItemA</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2329</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">targetItemA</span><span class="PUNC">;</span><span class="NAME">targetItemA</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">o.split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2330</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="NAME">targetItemA</span><span class="PUNC">[</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2331</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2332</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">expires</span><span class="PUNC">===</span><span class="STRN">''</span><span class="PUNC">)</span><span class="NAME">expires</span><span class="PUNC">=</span><span class="NAME">NaN</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2333</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">expires</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2334</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">expires</span><span class="PUNC">)</span><span class="NAME">expires</span><span class="PUNC">=</span><span class="NUMB">7</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 預設days</span><span class="WHIT">
|
||
<span class='line'>2335</span> </span><span class="WHIT"> </span><span class="NAME">_.set_cookie</span><span class="PUNC">(</span><span class="NAME">_.set_cookie.f.set_root</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Gecko need this</span><span class="WHIT">
|
||
<span class='line'>2336</span> </span><span class="WHIT"> </span><span class="NAME">_.set_cookie</span><span class="PUNC">(</span><span class="STRN">'expires'</span><span class="PUNC">,</span><span class="NAME">expires</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2337</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2338</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">formIdA.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">formIdA</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2339</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">o.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">o.name</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2340</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">o.tagName</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="STRN">'form'</span><span class="PUNC">&&</span><span class="NAME">n</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="NAME">dealO</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2341</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2342</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">expires</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">_.set_cookie</span><span class="PUNC">(</span><span class="STRN">'expires'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2343</span>
|
||
<span class='line'>2344</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2345</span>
|
||
<span class='line'>2346</span>
|
||
<span class='line'>2347</span> </span><span class="COMM">// 登入FTP IE使用者若要上傳,請開啟FTP 站台的資料夾檢視功能。</span><span class="WHIT">
|
||
<span class='line'>2348</span> </span><span class="COMM">// <input type="text" autocomplete="off"/></span><span class="WHIT">
|
||
<span class='line'>2349</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">loginFTP</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">,</span><span class="NAME">path</span><span class="PUNC">,</span><span class="NAME">hostname</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// name,password</span><span class="WHIT">
|
||
<span class='line'>2350</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">hostname</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">hostname</span><span class="PUNC">=</span><span class="NAME">location.hostname</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2351</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">==</span><span class="STRN">'ftp'</span><span class="PUNC">||</span><span class="NAME">n</span><span class="PUNC">==</span><span class="STRN">'anonymous'</span><span class="PUNC">)</span><span class="NAME">n</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2352</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">p</span><span class="PUNC">&&</span><span class="NAME">n</span><span class="PUNC">)</span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">window.prompt</span><span class="PUNC">(</span><span class="STRN">'請輸入['</span><span class="PUNC">+</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">']之密碼:'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2353</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">==</span><span class="KEYW">null</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 取消輸入</span><span class="WHIT">
|
||
<span class='line'>2354</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">=</span><span class="STRN">'ftp://'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">?</span><span class="NAME">n</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">?</span><span class="STRN">':'</span><span class="PUNC">+</span><span class="NAME">p</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'@'</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">hostname</span><span class="PUNC">+</span><span class="STRN">'/'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\/{2,}/g</span><span class="PUNC">,</span><span class="STRN">'/'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2355</span> </span><span class="WHIT"> </span><span class="NAME">window.open</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="STRN">'ftpW'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//location.href=p; // 用location.href不能進入資料夾檢視功能</span><span class="WHIT">
|
||
<span class='line'>2356</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2357</span>
|
||
<span class='line'>2358</span>
|
||
<span class='line'>2359</span> </span><span class="COMM">// reference page set ==================</span><span class="WHIT">
|
||
<span class='line'>2360</span>
|
||
<span class='line'>2361</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>2362</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>2363</span> </span><span class="COMM">/**
|
||
<span class='line'>2364</span> * 簡化 document.getElementById 並配合 loadReference()
|
||
<span class='line'>2365</span> * @since 2004/6/25 19:33
|
||
<span class='line'>2366</span> * @param id 所欲找尋之 element id
|
||
<span class='line'>2367</span> * @param flag
|
||
<span class='line'>2368</span> * {HTML Object} object: 參考此 document object
|
||
<span class='line'>2369</span> * {Number} flag: 參見 code
|
||
<span class='line'>2370</span> * @return {HTML Object} Object
|
||
<span class='line'>2371</span> * @requires referenceDoc,loadReferenceDone,`get_element();`
|
||
<span class='line'>2372</span> * @memberOf CeL.net.web
|
||
<span class='line'>2373</span> */</span><span class="WHIT">
|
||
<span class='line'>2374</span> </span><span class="NAME">get_element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">get_element</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2375</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">get_element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.f</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2376</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_f</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2377</span> </span><span class="WHIT"> </span><span class="COMM">// 在 Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510 中會出問題,所以改到函數中執行。但得先執行過一次。</span><span class="WHIT">
|
||
<span class='line'>2378</span> </span><span class="WHIT"> </span><span class="COMM">//alert('get_element: set flags get_element.f'),</span><span class="WHIT">
|
||
<span class='line'>2379</span> </span><span class="WHIT"> </span><span class="NAME">_s.f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2380</span> </span><span class="WHIT"> </span><span class="COMM">// 僅參考自身頁面,default</span><span class="WHIT">
|
||
<span class='line'>2381</span> </span><span class="WHIT"> </span><span class="STRN">'self'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2382</span> </span><span class="WHIT"> </span><span class="COMM">// 可參考 reference page</span><span class="WHIT">
|
||
<span class='line'>2383</span> </span><span class="WHIT"> </span><span class="STRN">'ref'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2384</span> </span><span class="WHIT"> </span><span class="COMM">// 僅參考 reference page</span><span class="WHIT">
|
||
<span class='line'>2385</span> </span><span class="WHIT"> </span><span class="STRN">'refOnly'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT">
|
||
<span class='line'>2386</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2387</span>
|
||
<span class='line'>2388</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT">
|
||
<span class='line'>2389</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">window.document</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2390</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2391</span> </span><span class="WHIT"> </span><span class="COMM">// if(flag)alert('get_element: '+id+','+flag);</span><span class="WHIT">
|
||
<span class='line'>2392</span>
|
||
<span class='line'>2393</span> </span><span class="WHIT"> </span><span class="COMM">// 後面暫時沒用到</span><span class="WHIT">
|
||
<span class='line'>2394</span> </span><span class="WHIT"> </span><span class="COMM">// if(!flag)flag=_f.self;</span><span class="WHIT">
|
||
<span class='line'>2395</span>
|
||
<span class='line'>2396</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>2397</span> </span><span class="WHIT"> </span><span class="COMM">//typeof document !== 'object' || </span><span class="WHIT">
|
||
<span class='line'>2398</span> </span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">document.body</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2399</span> </span><span class="WHIT"> </span><span class="COMM">// document 尚未 load</span><span class="WHIT">
|
||
<span class='line'>2400</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2401</span>
|
||
<span class='line'>2402</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_.is_HTML_element</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2403</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2404</span>
|
||
<span class='line'>2405</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2406</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">_f.refOnly</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2407</span> </span><span class="WHIT"> </span><span class="COMM">// 僅參考 reference page 時不設定</span><span class="WHIT">
|
||
<span class='line'>2408</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2409</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document.all</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.all</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="WHIT">
|
||
<span class='line'>2410</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document.layers</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.layers</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="WHIT">
|
||
<span class='line'>2411</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2412</span> </span><span class="WHIT"> </span><span class="COMM">//if(flag)alert('get_element: '+id+','+flag+'\nloadReferenceDone='+loadReferenceDone+'\nreferenceDoc: '+referenceDoc+'\no: '+o+'\nreferenceDoc.get: '+referenceDoc.getElementById(id)+'\n'+referenceDoc.body.innerHTML.slice(0,200));</span><span class="WHIT">
|
||
<span class='line'>2413</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2414</span> </span><span class="WHIT"> </span><span class="COMM">// 偶爾還是有可能'沒有使用權限'</span><span class="WHIT">
|
||
<span class='line'>2415</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">flag.getElementById</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">flag.getElementById</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2416</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT">
|
||
<span class='line'>2417</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">loadReferenceDone</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">referenceDoc.getElementById</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2418</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2419</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2420</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2421</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2422</span>
|
||
<span class='line'>2423</span>
|
||
<span class='line'>2424</span>
|
||
<span class='line'>2425</span> </span><span class="COMM">/* 以外掛的reference page配置data object 2004/6/25 21:01
|
||
<span class='line'>2426</span>
|
||
<span class='line'>2427</span> toUse:
|
||
<span class='line'>2428</span> 準備好reference.htm
|
||
<span class='line'>2429</span> 在需要的文件加入 window.onload="loadReference()";
|
||
<span class='line'>2430</span> 在需要的文件body加入 <iframe id="reference"></iframe>
|
||
<span class='line'>2431</span> function setupPageR() initial after load of reference page
|
||
<span class='line'>2432</span>
|
||
<span class='line'>2433</span> 如上,再使用 get_element() 即可得到 reference.htm 中的 obj
|
||
<span class='line'>2434</span> */</span><span class="WHIT">
|
||
<span class='line'>2435</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">referenceDoc</span><span class="PUNC">,</span><span class="NAME">loadReferenceDone</span><span class="PUNC">;</span><span class="COMM">//,loadReferenceCount;</span><span class="WHIT">
|
||
<span class='line'>2436</span> </span><span class="COMM">//loadReference[generateCode.dLK]='get_element,referenceDoc,loadReferenceDone,parseFunction';</span><span class="WHIT">
|
||
<span class='line'>2437</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">loadReference</span><span class="PUNC">(</span><span class="NAME">referenceURL</span><span class="PUNC">,</span><span class="NAME">iframeId</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2438</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">loadReferenceDone</span><span class="PUNC">||</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">location</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">location.protocol</span><span class="PUNC">||</span><span class="NAME">location.protocol</span><span class="PUNC">==</span><span class="STRN">'https:'</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// https會拒絕存取,所以直接放棄。</span><span class="WHIT">
|
||
<span class='line'>2439</span> </span><span class="WHIT"> </span><span class="COMM">//if(loadReferenceDone)return; // https會拒絕存取,所以直接放棄。</span><span class="WHIT">
|
||
<span class='line'>2440</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">_.get_element</span><span class="PUNC">(</span><span class="NAME">iframeId</span><span class="PUNC">||</span><span class="STRN">'reference'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">thisFuncName</span><span class="PUNC">=</span><span class="NAME">parseFunction</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">funcName</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2441</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">referenceDoc</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">referenceDoc.document</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">referenceDoc.document</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// referenceDoc is still contentWindow here. typeof referenceDoc.document:預防使用https時產生不能讀取的權限問題。</span><span class="WHIT">
|
||
<span class='line'>2442</span> </span><span class="WHIT"> </span><span class="NAME">referenceDoc</span><span class="PUNC">=</span><span class="NAME">o.contentWindow.document</span><span class="PUNC">;</span><span class="COMM">//referenceDoc.document; // 遺憾:在舊版IE不能用後者。也許是因為舊版IE連contentWindow都會重造。</span><span class="WHIT">
|
||
<span class='line'>2443</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">referenceDoc.body</span><span class="PUNC">;</span><span class="COMM">//alert(o.innerHTML.length+'\n'+o.innerHTML);</span><span class="WHIT">
|
||
<span class='line'>2444</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="COMM">/*&&referenceDoc.body.innerHTML=='string'*/</span><span class="PUNC">&&</span><span class="NAME">o.innerHTML.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2445</span> </span><span class="WHIT"> </span><span class="COMM">//alert(typeof o+','+(o?typeof o.innerHTML+'('+o.innerHTML.length+')\n'+o.innerHTML.slice(0,200):'(null)'));</span><span class="WHIT">
|
||
<span class='line'>2446</span> </span><span class="WHIT"> </span><span class="COMM">// before IE5, the first argument must be a string.</span><span class="WHIT">
|
||
<span class='line'>2447</span> </span><span class="WHIT"> </span><span class="COMM">// setTimeout(function_handle,..) 不一定代表setTimeout('function_handle();',..),可能會傳入奇異的引數!</span><span class="WHIT">
|
||
<span class='line'>2448</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">setupPageR</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">setupPageR</span><span class="PUNC">,</span><span class="NUMB">9</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2449</span> </span><span class="WHIT"> </span><span class="NAME">loadReferenceDone</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="COMM">//window.status='reference page load OK!';alert(window.status);</span><span class="WHIT">
|
||
<span class='line'>2450</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2451</span> </span><span class="WHIT"> </span><span class="COMM">//try{window.status='Wait while reference page loading..3',alert(window.status+'\nURL:'+o.contentWindow.document.src+'\ncontent('+o.contentWindow.document.body.innerHTML.length+'):\n'+o.contentWindow.document.body.innerHTML);}catch(e){}</span><span class="WHIT">
|
||
<span class='line'>2452</span> </span><span class="WHIT"> </span><span class="COMM">//if(!--loadReferenceCount)history.go(0);</span><span class="WHIT">
|
||
<span class='line'>2453</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">thisFuncName</span><span class="PUNC">+</span><span class="STRN">'();'</span><span class="PUNC">,</span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2454</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2455</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2456</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2457</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">document.body</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// document尚未load</span><span class="WHIT">
|
||
<span class='line'>2458</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">thisFuncName</span><span class="PUNC">+</span><span class="STRN">'();'</span><span class="PUNC">,</span><span class="NUMB">90</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2459</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2460</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2461</span> </span><span class="WHIT"> </span><span class="COMM">//o=_.get_element(iframeId||'reference'); // 原來把設定放在這,不過反正都要在前面用到…</span><span class="WHIT">
|
||
<span class='line'>2462</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">||</span><span class="PUNC">(</span><span class="NAME">o.tagName</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="STRN">'iframe'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">loadReferenceDone</span><span class="PUNC">=</span><span class="NUMB">2</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// iframe不存在</span><span class="WHIT">
|
||
<span class='line'>2463</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o.src</span><span class="PUNC">)</span><span class="NAME">o.style.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">,</span><span class="COMM">//'block',//</span><span class="WHIT">
|
||
<span class='line'>2464</span> </span><span class="WHIT"> </span><span class="NAME">o.src</span><span class="PUNC">=</span><span class="NAME">referenceURL</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// for game.js: typeof relatePath=='function'?relatePath(0,'cgi-bin/game/data/reference.htm'):'data/reference.htm'</span><span class="WHIT">
|
||
<span class='line'>2465</span>
|
||
<span class='line'>2466</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o.contentWindow</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o.contentWindow.document</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// typeof o.contentWindow=='object'&&: for JS5 應該不能用o.contentWindow吧?怕o.contentWindow就算沒能載入文件,也會被定義</span><span class="WHIT">
|
||
<span class='line'>2467</span> </span><span class="WHIT"> </span><span class="COMM">// Martin Honnen wrote: If you load a new document then certainly the browser has to create a new document object.</span><span class="WHIT">
|
||
<span class='line'>2468</span> </span><span class="WHIT"> </span><span class="NAME">referenceDoc</span><span class="PUNC">=</span><span class="NAME">o.contentWindow</span><span class="PUNC">;</span><span class="COMM">//.document; o.contentWindow.document still index to a blank window here, when new document load, this point to document won't work.</span><span class="WHIT">
|
||
<span class='line'>2469</span>
|
||
<span class='line'>2470</span> </span><span class="WHIT"> </span><span class="COMM">//window.status='Wait while reference page loading..2';alert(window.status+'\nURL:'+o.src);</span><span class="WHIT">
|
||
<span class='line'>2471</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">thisFuncName</span><span class="PUNC">+</span><span class="STRN">'();'</span><span class="PUNC">,</span><span class="NUMB">20</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//loadReferenceCount=9;</span><span class="WHIT">
|
||
<span class='line'>2472</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2473</span> </span><span class="WHIT"> </span><span class="COMM">//if(location.protocol=='https:')return; // https會拒絕存取,所以直接放棄。最晚在這就得判別</span><span class="WHIT">
|
||
<span class='line'>2474</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">referenceDoc</span><span class="PUNC">)</span><span class="NAME">referenceDoc</span><span class="PUNC">=</span><span class="NUMB">40</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 尚未load完成時作倒數計時..假如加上if(o.contentWindow),這方法正確嗎?</span><span class="WHIT">
|
||
<span class='line'>2475</span> </span><span class="WHIT"> </span><span class="COMM">//else if(isNaN(referenceDoc))return 3; // 異常(for https):不能用else if(isNaN(referenceDoc))</span><span class="WHIT">
|
||
<span class='line'>2476</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2477</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">referenceDoc</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2478</span> </span><span class="WHIT"> </span><span class="COMM">//window.status='Wait while reference page loading..';alert(window.status);</span><span class="WHIT">
|
||
<span class='line'>2479</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">thisFuncName</span><span class="PUNC">+</span><span class="STRN">'();'</span><span class="PUNC">,</span><span class="NUMB">300</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2480</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2481</span> </span><span class="WHIT"> </span><span class="COMM">//window.status='reference page load FAILED!';alert(window.status);</span><span class="WHIT">
|
||
<span class='line'>2482</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2483</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2484</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2485</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">5</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Error: uncaught exception: Permission denied to get property HTMLDocument.document</span><span class="WHIT">
|
||
<span class='line'>2486</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2487</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2488</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2489</span> </span><span class="COMM">// translate object(innerHTML) from reference page to document</span><span class="WHIT">
|
||
<span class='line'>2490</span> </span><span class="COMM">//transRefObj[generateCode.dLK]='get_element';</span><span class="WHIT">
|
||
<span class='line'>2491</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">transRefObj</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="NAME">id2</span><span class="PUNC">,</span><span class="NAME">force</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2492</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">id2</span><span class="PUNC">!=</span><span class="STRN">'string'</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">id2</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="NAME">force</span><span class="PUNC">=</span><span class="NAME">id2</span><span class="PUNC">,</span><span class="NAME">id2</span><span class="PUNC">=</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">?</span><span class="NAME">id.id</span><span class="PUNC">:</span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2493</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">?</span><span class="NAME">id</span><span class="PUNC">:</span><span class="NAME">_.get_element</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="NAME">_.get_element.f.self</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2494</span> </span><span class="WHIT"> </span><span class="COMM">//alert('transRefObj: '+id2+' -> '+id+'('+(force?'':'not ')+'force)\n'+o+'\ntarget:'+(o.innerHTML?'\n'+o.innerHTML.slice(0,200):' (null)'));</span><span class="WHIT">
|
||
<span class='line'>2495</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">force</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">o.innerHTML</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2496</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">=</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">id2</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">?</span><span class="NAME">id2</span><span class="PUNC">:</span><span class="NAME">_.get_element</span><span class="PUNC">(</span><span class="NAME">id2</span><span class="PUNC">,</span><span class="NAME">_.get_element.f.refOnly</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">force</span><span class="PUNC">||</span><span class="NAME">p.innerHTML</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2497</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2498</span> </span><span class="WHIT"> </span><span class="COMM">//alert('transRefObj: DO '+id2+' -> '+id+'('+(force?'':'not ')+'force)\n');</span><span class="WHIT">
|
||
<span class='line'>2499</span> </span><span class="WHIT"> </span><span class="NAME">o.appendChild</span><span class="PUNC">(</span><span class="NAME">p.cloneNode</span><span class="PUNC">(</span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2500</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2501</span> </span><span class="COMM">/*
|
||
<span class='line'>2502</span> try{
|
||
<span class='line'>2503</span> //alert('transRefObj: try2');
|
||
<span class='line'>2504</span> var i=0;while(i<p.childNodes.length)o.appendChild(p.childNodes[i++].cloneNode(true));
|
||
<span class='line'>2505</span> }catch(e){
|
||
<span class='line'>2506</span> */</span><span class="WHIT">
|
||
<span class='line'>2507</span> </span><span class="WHIT"> </span><span class="COMM">//alert('transRefObj: try3');</span><span class="WHIT">
|
||
<span class='line'>2508</span> </span><span class="WHIT"> </span><span class="NAME">o.innerHTML</span><span class="PUNC">=</span><span class="NAME">p.innerHTML</span><span class="PUNC">;</span><span class="COMM">//p.cloneNode(true); //serialize(p) serialize方法把一个node串行化成字符串。在ie环境的具体实现上,对于XmlDocument,使用node.xml,对于HtmlDocument,使用node.outerHTML。 http://my.opera.com/gisor/blog/index.dml/tag/SVG</span><span class="WHIT">
|
||
<span class='line'>2509</span> </span><span class="COMM">/*
|
||
<span class='line'>2510</span> }
|
||
<span class='line'>2511</span> */</span><span class="WHIT">
|
||
<span class='line'>2512</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2513</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2514</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2515</span>
|
||
<span class='line'>2516</span> </span><span class="COMM">// ↑reference page set ==================</span><span class="WHIT">
|
||
<span class='line'>2517</span>
|
||
<span class='line'>2518</span>
|
||
<span class='line'>2519</span>
|
||
<span class='line'>2520</span>
|
||
<span class='line'>2521</span>
|
||
<span class='line'>2522</span> </span><span class="COMM">// 設定自動捲動</span><span class="WHIT">
|
||
<span class='line'>2523</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">setAutoScrollTimer</span><span class="PUNC">,</span><span class="NAME">setAutoScrollInterval</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2524</span> </span><span class="COMM">//setAutoScroll[generateCode.dLK]='setAutoScrollTimer,setAutoScrollInterval';</span><span class="WHIT">
|
||
<span class='line'>2525</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">setAutoScroll</span><span class="PUNC">(</span><span class="NAME">interval</span><span class="PUNC">,</span><span class="NAME">force</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2526</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">force</span><span class="PUNC">)</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">||</span><span class="NAME">setAutoScrollTimer</span><span class="PUNC">||</span><span class="NAME">document.onmousedown</span><span class="PUNC">||</span><span class="NAME">document.ondblclick</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2527</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">interval</span><span class="PUNC">)</span><span class="NAME">setAutoScrollInterval</span><span class="PUNC">=</span><span class="NAME">interval</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">setAutoScrollInterval</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">setAutoScrollInterval</span><span class="PUNC">=</span><span class="NAME">get_cookie</span><span class="PUNC">(</span><span class="STRN">'setAutoScrollInterval'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">setAutoScrollInterval</span><span class="PUNC">=</span><span class="NUMB">200</span><span class="PUNC">;</span><span class="COMM">//5,50,100,200,500</span><span class="WHIT">
|
||
<span class='line'>2528</span> </span><span class="WHIT"> </span><span class="NAME">clearInterval</span><span class="PUNC">(</span><span class="NAME">setAutoScrollTimer</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">setAutoScrollTimer</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 無論如何,先把執行中的幹掉。</span><span class="WHIT">
|
||
<span class='line'>2529</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">setAutoScrollInterval</span><span class="PUNC"><</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">document.onmousedown</span><span class="PUNC">=</span><span class="NAME">document.ondblclick</span><span class="PUNC">=</span><span class="KEYW">null</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2530</span> </span><span class="WHIT"> </span><span class="NAME">document.onmousedown</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">setAutoScrollTimer</span><span class="PUNC">)</span><span class="NAME">window.clearInterval</span><span class="PUNC">(</span><span class="NAME">setAutoScrollTimer</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">setAutoScrollTimer</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2531</span> </span><span class="WHIT"> </span><span class="NAME">document.ondblclick</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">setAutoScrollTimer</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="NAME">setAutoScrollTimer</span><span class="PUNC">=</span><span class="NAME">window.setInterval</span><span class="PUNC">(</span><span class="STRN">'window.scrollBy(0,1);'</span><span class="PUNC">,</span><span class="NAME">setAutoScrollInterval</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="COMM">//window.scrollTo(0,document.body.scrollTop+1);</span><span class="WHIT">
|
||
<span class='line'>2532</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2533</span>
|
||
<span class='line'>2534</span>
|
||
<span class='line'>2535</span> </span><span class="COMM">/* 捲到設定的定點,因為某些多工慢速環境中只設定一次沒有用,所以…
|
||
<span class='line'>2536</span> 下面一行調到檔案頭
|
||
<span class='line'>2537</span> var scrollToXY,scrollToInterval,scrollToOK;
|
||
<span class='line'>2538</span> */</span><span class="WHIT">
|
||
<span class='line'>2539</span> </span><span class="COMM">//scrollTo[generateCode.dLK]='scrollToXY,scrollToInterval,scrollToOK,get_window_status';</span><span class="WHIT">
|
||
<span class='line'>2540</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">scrollTo</span><span class="PUNC">(</span><span class="NAME">y</span><span class="PUNC">,</span><span class="NAME">x</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2541</span> </span><span class="WHIT"> </span><span class="COMM">// initial</span><span class="WHIT">
|
||
<span class='line'>2542</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">scrollToXY</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="NAME">scrollToXY</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2543</span>
|
||
<span class='line'>2544</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">y.x</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">y.y</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">y.x</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">scrollToXY.x</span><span class="PUNC">=</span><span class="NAME">y.x</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">y.y</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">scrollToXY.y</span><span class="PUNC">=</span><span class="NAME">y.y</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2545</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">y</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="NAME">scrollToXY.x</span><span class="PUNC">=</span><span class="NAME">y</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">scrollToXY.y</span><span class="PUNC">=</span><span class="NAME">y</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2546</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="PUNC">{</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">scrollToXY.x</span><span class="PUNC">=</span><span class="NAME">x</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">scrollToXY.y</span><span class="PUNC">=</span><span class="NAME">y</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2547</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">scrollToXY.x</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">scrollToXY.x</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">scrollToXY.y</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">scrollToXY.y</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2548</span>
|
||
<span class='line'>2549</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'window.scrollTo(scrollToXY.x,scrollToXY.y);'</span><span class="PUNC">,</span><span class="NUMB">9</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// main function</span><span class="WHIT">
|
||
<span class='line'>2550</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_w</span><span class="PUNC">=</span><span class="NAME">get_window_status</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2551</span> </span><span class="WHIT"> </span><span class="COMM">//status=scrollToInterval+','+scrollToOK+';'+_w.scrollX+','+scrollToXY.x+';'+_w.scrollY+','+scrollToXY.y;</span><span class="WHIT">
|
||
<span class='line'>2552</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_w.scrollX</span><span class="PUNC">==</span><span class="NAME">scrollToXY.x</span><span class="PUNC">&&</span><span class="NAME">_w.scrollY</span><span class="PUNC">==</span><span class="NAME">scrollToXY.y</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2553</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">--</span><span class="NAME">scrollToOK</span><span class="PUNC">&&</span><span class="NAME">scrollToInterval</span><span class="PUNC">)</span><span class="NAME">window.clearInterval</span><span class="PUNC">(</span><span class="NAME">scrollToInterval</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">scrollToInterval</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2554</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">scrollToInterval</span><span class="PUNC">)</span><span class="NAME">scrollToInterval</span><span class="PUNC">=</span><span class="NAME">window.setInterval</span><span class="PUNC">(</span><span class="NAME">scrollTo</span><span class="PUNC">,</span><span class="NUMB">90</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">scrollToOK</span><span class="PUNC">=</span><span class="NUMB">3</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 預防萬一:總會跳回原處</span><span class="WHIT">
|
||
<span class='line'>2555</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2556</span>
|
||
<span class='line'>2557</span> </span><span class="COMM">/* doAlert() & doAlertAccess:彈出使用注意事項視窗
|
||
<span class='line'>2558</span> 下面一行調到檔案頭
|
||
<span class='line'>2559</span> var doAlertDivName,doAlertOldScrollLocation;
|
||
<span class='line'>2560</span>
|
||
<span class='line'>2561</span> TODO
|
||
<span class='line'>2562</span> 設定其不可作用之 background object
|
||
<span class='line'>2563</span>
|
||
<span class='line'>2564</span> 使用方法:
|
||
<span class='line'>2565</span> <head>
|
||
<span class='line'>2566</span> <script type="text/javascript" src="function.js"></script>
|
||
<span class='line'>2567</span> <script type="text/javascript">
|
||
<span class='line'>2568</span> window.onload=init;window.onscroll=window.onresize=doAlertScroll;
|
||
<span class='line'>2569</span> function init(){doAlertInit('kousi');}
|
||
<span class='line'>2570</span> </script>
|
||
<span class='line'>2571</span>
|
||
<span class='line'>2572</span> <style type="text/css"><!--
|
||
<span class='line'>2573</span>
|
||
<span class='line'>2574</span> /* kousi用 加上filter:alpha(opacity=10);:因為IE5.5不吃DXImageTransform.Microsoft.Alpha,這樣用不能以.filters.alpha.opacity控制。 * /
|
||
<span class='line'>2575</span> #kousi{color:blue;background:#e2e0f8;border:double 3px red;padding:.5em;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80,Style=0);filter:Alpha(Opacity=80,Style=0);z-index:2;overflow:auto;}
|
||
<span class='line'>2576</span> #kousiBg{background:blue;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=30,Style=0);filter:Alpha(Opacity=30,Style=0);z-index:1;}
|
||
<span class='line'>2577</span> #kousiI{color:brown;background-color:#e6e6ff;cursor:pointer;border:1 solid red;white-space:nowrap;padding:2px;margin:2px;filter:Alpha(Opacity=80,Style=0);}
|
||
<span class='line'>2578</span>
|
||
<span class='line'>2579</span> #kousi h2{color:brown;margin-left:2em;}
|
||
<span class='line'>2580</span> #kousi input{color:#114f12;background-color:#fddbfb;border:1 brown solid;}
|
||
<span class='line'>2581</span>
|
||
<span class='line'>2582</span> --></style>
|
||
<span class='line'>2583</span> </head>
|
||
<span class='line'>2584</span>
|
||
<span class='line'>2585</span> <body>
|
||
<span class='line'>2586</span> <!--div id="kousiBg"></div--><div id="kousi">
|
||
<span class='line'>2587</span> <h2>使用注意事項</h2>
|
||
<span class='line'>2588</span>
|
||
<span class='line'>2589</span> 注意事項
|
||
<span class='line'>2590</span>
|
||
<span class='line'>2591</span> <hr style="color:#928cd9"/>
|
||
<span class='line'>2592</span> <table style="width:90%;text-align:center;"><tr><td><input type="button" onclick="top.location.href='http://www.hinet.net';" value="誰管你!"/></td>
|
||
<span class='line'>2593</span> <td><input type="button" onclick="doAlertAccess();//this.parentNode.parentNode.parentNode.parentNode.parentNode.id" value="我願意遵守上述規定"/></td>
|
||
<span class='line'>2594</span> <td><input type="button" onclick="set_cookie(set_cookie.f.forever),set_cookie('doAlert',doAlertDivName),doAlertAccess();" value="我往後皆會遵守上述規定"/></td></tr></table>
|
||
<span class='line'>2595</span> </div>
|
||
<span class='line'>2596</span>
|
||
<span class='line'>2597</span> <a href="#" onclick="doAlert();">注意事項</a>
|
||
<span class='line'>2598</span>
|
||
<span class='line'>2599</span> 正文
|
||
<span class='line'>2600</span>
|
||
<span class='line'>2601</span> </body>
|
||
<span class='line'>2602</span> */</span><span class="WHIT">
|
||
<span class='line'>2603</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">doAlertResize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 確保置中</span><span class="WHIT">
|
||
<span class='line'>2604</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">doAlertDivName</span><span class="PUNC">!=</span><span class="STRN">'string'</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">doAlertDivName</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">doAlertDivName</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2605</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">o.style</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2606</span> </span><span class="WHIT"> </span><span class="NAME">position</span><span class="PUNC">=</span><span class="STRN">'absolute'</span><span class="PUNC">,</span><span class="NAME">display</span><span class="PUNC">=</span><span class="STRN">'block'</span><span class="PUNC">,</span><span class="NAME">width</span><span class="PUNC">=</span><span class="STRN">'70%'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2607</span> </span><span class="COMM">/* 因為'%'是以整體長寬為主,故不適用。
|
||
<span class='line'>2608</span> var t=Math.round(50*(1-o.offsetHeight/document.body.clientHeight));
|
||
<span class='line'>2609</span> if(t<0)width='99%',top='0';else top=t+'%';
|
||
<span class='line'>2610</span> t=Math.round(50*(1-o.offsetWidth/document.body.clientWidth));
|
||
<span class='line'>2611</span> left=t<0?'0':t+'%';
|
||
<span class='line'>2612</span> */</span><span class="WHIT">
|
||
<span class='line'>2613</span> </span><span class="WHIT"> </span><span class="COMM">//alert(offsetHeight+','+window.offsetHeight+','+window.innerHeight+','+window.outerHeight);</span><span class="WHIT">
|
||
<span class='line'>2614</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window.innerHeight</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">window.innerHeight</span><span class="PUNC">=</span><span class="NAME">document.body.clientHeight</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2615</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window.innerWidth</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">window.innerWidth</span><span class="PUNC">=</span><span class="NAME">document.body.clientWidth</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2616</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">window.innerHeight</span><span class="PUNC">-</span><span class="NAME">o.offsetHeight</span><span class="PUNC">)</span><span class="PUNC">/</span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2617</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC"><</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="NAME">width</span><span class="PUNC">=</span><span class="NAME">height</span><span class="PUNC">=</span><span class="STRN">'99%'</span><span class="PUNC">,</span><span class="NAME">top</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">top</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2618</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">window.innerWidth</span><span class="PUNC">-</span><span class="NAME">o.offsetWidth</span><span class="PUNC">)</span><span class="PUNC">/</span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2619</span> </span><span class="WHIT"> </span><span class="NAME">left</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC"><</span><span class="NUMB">0</span><span class="PUNC">?</span><span class="NUMB">0</span><span class="PUNC">:</span><span class="NAME">t</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 不用marginTop與marginLeft,因為這裡要放置div</span><span class="WHIT">
|
||
<span class='line'>2620</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2621</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2622</span> </span><span class="COMM">// 初始化</span><span class="WHIT">
|
||
<span class='line'>2623</span> </span><span class="COMM">//doAlertInit[generateCode.dLK]='set_cookie,doAlert';</span><span class="WHIT">
|
||
<span class='line'>2624</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">doAlertInit</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// n:div name</span><span class="WHIT">
|
||
<span class='line'>2625</span> </span><span class="WHIT"> </span><span class="COMM">//if(typeof doAlertDone!='undefined'&&doAlertDone)return; // 防止重複執行</span><span class="WHIT">
|
||
<span class='line'>2626</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// doAlertInit()重設</span><span class="WHIT">
|
||
<span class='line'>2627</span> </span><span class="WHIT"> </span><span class="NAME">_.set_cookie</span><span class="PUNC">(</span><span class="NAME">_.set_cookie.f.set_root</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Gecko need this</span><span class="WHIT">
|
||
<span class='line'>2628</span> </span><span class="WHIT"> </span><span class="NAME">_.set_cookie</span><span class="PUNC">(</span><span class="STRN">'doAlert'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2629</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2630</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2631</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2632</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2633</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">doAlertDivName</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">doAlertDivName</span><span class="PUNC">=</span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2634</span> </span><span class="WHIT"> </span><span class="NAME">doAlert</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2635</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2636</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2637</span> </span><span class="COMM">// 出現警告</span><span class="WHIT">
|
||
<span class='line'>2638</span> </span><span class="COMM">//doAlert[generateCode.dLK]='doAlertInit,doAlertResize,doAlertAccess,doAlertScroll,doAlertDivName,doAlertOldScrollLocation,get_cookie,get_window_status';</span><span class="WHIT">
|
||
<span class='line'>2639</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">doAlert</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">iconContent</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// n:name,m:mode=1:use alert(),icon div的文字內容</span><span class="WHIT">
|
||
<span class='line'>2640</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">n</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">doAlertDivName</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">&&</span><span class="NAME">doAlertDivName</span><span class="PUNC">)</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">doAlertDivName</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2641</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">oBg</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">'Bg'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">oI</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">'I'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2642</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">document.body</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">||</span><span class="NAME">m</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="NAME">o.innerHTML</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// alert()會return undefined</span><span class="WHIT">
|
||
<span class='line'>2643</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">oI</span><span class="PUNC">)</span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2644</span> </span><span class="WHIT"> </span><span class="NAME">o.parentNode.insertBefore</span><span class="PUNC">(</span><span class="NAME">oI</span><span class="PUNC">=</span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//document.body.insertBefore();</span><span class="WHIT">
|
||
<span class='line'>2645</span> </span><span class="WHIT"> </span><span class="NAME">oI.id</span><span class="PUNC">=</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">'I'</span><span class="PUNC">;</span><span class="NAME">oI.onclick</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">doAlertInit</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">doAlert</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="NAME">oI.title</span><span class="PUNC">=</span><span class="STRN">"注意事項"</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2646</span> </span><span class="WHIT"> </span><span class="NAME">oI.innerHTML</span><span class="PUNC">=</span><span class="NAME">iconContent</span><span class="PUNC">||</span><span class="STRN">'別忘了'</span><span class="PUNC">;</span><span class="NAME">oI.doAlertScrollT</span><span class="PUNC">=</span><span class="NAME">oI.doAlertScrollL</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2647</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// 只對IE5.5之後有用</span><span class="WHIT">
|
||
<span class='line'>2648</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">oBg</span><span class="PUNC">)</span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">o.parentNode.insertBefore</span><span class="PUNC">(</span><span class="NAME">oBg</span><span class="PUNC">=</span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">oBg.id</span><span class="PUNC">=</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">'Bg'</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// 只對IE5.5之後有用</span><span class="WHIT">
|
||
<span class='line'>2649</span> </span><span class="WHIT"> </span><span class="COMM">//if(!oI||!oBg)alert('No index or bg div!');</span><span class="WHIT">
|
||
<span class='line'>2650</span> </span><span class="WHIT"> </span><span class="NAME">disableKM</span><span class="PUNC">(</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">doAlertResize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">window.Oonresize</span><span class="PUNC">=</span><span class="NAME">window.onresize</span><span class="PUNC">,</span><span class="NAME">window.onresize</span><span class="PUNC">=</span><span class="NAME">doAlertResize</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2651</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">oI.style</span><span class="PUNC">)</span><span class="NAME">display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">,</span><span class="NAME">position</span><span class="PUNC">=</span><span class="STRN">'absolute'</span><span class="PUNC">,</span><span class="NAME">right</span><span class="PUNC">=</span><span class="STRN">'.1em'</span><span class="PUNC">,</span><span class="NAME">top</span><span class="PUNC">=</span><span class="STRN">'.1em'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2652</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">oBg.style</span><span class="PUNC">)</span><span class="NAME">position</span><span class="PUNC">=</span><span class="STRN">'absolute'</span><span class="PUNC">,</span><span class="NAME">left</span><span class="PUNC">=</span><span class="PUNC">-</span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">document.body.leftMargin</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">top</span><span class="PUNC">=</span><span class="PUNC">-</span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">document.body.topMargin</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">width</span><span class="PUNC">=</span><span class="NAME">height</span><span class="PUNC">=</span><span class="STRN">'110%'</span><span class="PUNC">,</span><span class="NAME">display</span><span class="PUNC">=</span><span class="STRN">'inline'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// offset*:唯讀</span><span class="WHIT">
|
||
<span class='line'>2653</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o.filters</span><span class="PUNC">)</span><span class="NAME">o.filters.alpha.opacity</span><span class="PUNC">=</span><span class="NUMB">85</span><span class="PUNC">;</span><span class="COMM">//try{o.filters.alpha.opacity=85;}catch(e){}</span><span class="WHIT">
|
||
<span class='line'>2654</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">oBg.filters</span><span class="PUNC">)</span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">oBg.filters.alpha.opacity</span><span class="PUNC">=</span><span class="NUMB">30</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2655</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// for Moz</span><span class="WHIT">
|
||
<span class='line'>2656</span> </span><span class="WHIT"> </span><span class="NAME">o.style.position</span><span class="PUNC">=</span><span class="STRN">'fixed'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2657</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">oBg.style</span><span class="PUNC">)</span><span class="NAME">position</span><span class="PUNC">=</span><span class="STRN">'fixed'</span><span class="PUNC">,</span><span class="NAME">opacity</span><span class="PUNC">=</span><span class="NAME">oBg.style</span><span class="PUNC">[</span><span class="STRN">'-moz-opacity'</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">.</span><span class="NUMB">3</span><span class="PUNC">,</span><span class="NAME">left</span><span class="PUNC">=</span><span class="NAME">top</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">width</span><span class="PUNC">=</span><span class="NAME">height</span><span class="PUNC">=</span><span class="STRN">'100%'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2658</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2659</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">get_cookie</span><span class="PUNC">(</span><span class="STRN">'doAlert'</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="NAME">n</span><span class="PUNC">)</span><span class="NAME">doAlertAccess</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2660</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">get_window_status</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">doAlertOldScrollLocation</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NAME">o.scrollX</span><span class="PUNC">,</span><span class="NAME">o.scrollY</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'scrollTo(0,0);'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 奇怪的是,直接執行scrollTo(0,0)沒啥用。</span><span class="WHIT">
|
||
<span class='line'>2661</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2662</span> </span><span class="COMM">// pass</span><span class="WHIT">
|
||
<span class='line'>2663</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">doAlertAccess</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2664</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">n</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">doAlertDivName</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">&&</span><span class="NAME">doAlertDivName</span><span class="PUNC">)</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">doAlertDivName</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2665</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">oBg</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">'Bg'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2666</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">oBg</span><span class="PUNC">)</span><span class="NAME">oBg.style.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="NAME">o.style.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2667</span> </span><span class="WHIT"> </span><span class="NAME">disableKM</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2668</span> </span><span class="WHIT"> </span><span class="NAME">window.onresize</span><span class="PUNC">=</span><span class="NAME">window.Oonresize</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2669</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">doAlertOldScrollLocation</span><span class="PUNC">)</span><span class="NAME">scrollTo</span><span class="PUNC">(</span><span class="NAME">doAlertOldScrollLocation</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2670</span> </span><span class="WHIT"> </span><span class="NAME">doAlertScroll</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2671</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2672</span> </span><span class="COMM">// icon div的捲動:置於右上角</span><span class="WHIT">
|
||
<span class='line'>2673</span> </span><span class="COMM">//doAlertScroll[generateCode.dLK]='get_window_status';</span><span class="WHIT">
|
||
<span class='line'>2674</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">doAlertScroll</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">oI</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2675</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">doAlertDivName</span><span class="PUNC">!=</span><span class="STRN">'string'</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">doAlertDivName</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">oI</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">doAlertDivName</span><span class="PUNC">+</span><span class="STRN">'I'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2676</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2677</span> </span><span class="WHIT"> </span><span class="NAME">oI.style.display</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">?</span><span class="STRN">'block'</span><span class="PUNC">:</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2678</span> </span><span class="WHIT"> </span><span class="NAME">oI.doAlertScrollL</span><span class="PUNC">=</span><span class="NAME">oI.offsetWidth</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">||</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2679</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">oI.currentStyle</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// IE</span><span class="WHIT">
|
||
<span class='line'>2680</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">oI.currentStyle.paddingTop</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">oI.doAlertScrollT</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2681</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">oI.currentStyle.paddingLeft</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2682</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">oI.currentStyle.paddingRight</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">oI.doAlertScrollL</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2683</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2684</span> </span><span class="WHIT"> </span><span class="NAME">oI.style.position</span><span class="PUNC">=</span><span class="STRN">'fixed'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2685</span> </span><span class="COMM">/* // Moz..but no use
|
||
<span class='line'>2686</span> if(m=oI.offsetTop)oI.doAlertScrollT=m;
|
||
<span class='line'>2687</span> m=oI.offsetLeft;
|
||
<span class='line'>2688</span> if(m=oI.offsetRight)oI.doAlertScrollL+=m;
|
||
<span class='line'>2689</span> */</span><span class="WHIT">
|
||
<span class='line'>2690</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2691</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2692</span> </span><span class="WHIT"> </span><span class="COMM">//window.status=m=window.scrollX+','+window.scrollY+','+window.innerWidth+','+window.innerHeight+';'+document.body.scrollLeft+','+document.body.scrollTop+','+document.body.offsetWidth+','+document.body.clientWidth+','+oI.offsetWidth+','+document.body.scrollWidth;alert(m);</span><span class="WHIT">
|
||
<span class='line'>2693</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">get_window_status</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2694</span> </span><span class="WHIT"> </span><span class="NAME">oI.style.left</span><span class="PUNC">=</span><span class="NAME">m.scrollX</span><span class="PUNC">+</span><span class="NAME">m.windowW</span><span class="PUNC">-</span><span class="NAME">oI.doAlertScrollL</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="COMM">//-document.body.leftMargin-document.body.rightMargin</span><span class="WHIT">
|
||
<span class='line'>2695</span> </span><span class="WHIT"> </span><span class="NAME">oI.style.top</span><span class="PUNC">=</span><span class="NAME">m.scrollY</span><span class="PUNC">-</span><span class="NAME">oI.doAlertScrollT</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 只有在padding用px時有效!</span><span class="WHIT">
|
||
<span class='line'>2696</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2697</span>
|
||
<span class='line'>2698</span>
|
||
<span class='line'>2699</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>2700</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>2701</span> </span><span class="COMM">/**
|
||
<span class='line'>2702</span> * Sets / adds class of specified element.<br/>
|
||
<span class='line'>2703</span> * TODO:<br/>
|
||
<span class='line'>2704</span> * 1. 一次處理多個 className。<br/>
|
||
<span class='line'>2705</span> * 2. 以字串處理可能較快。<br/>
|
||
<span class='line'>2706</span> * 3. 用 +/- 設定。<br/>
|
||
<span class='line'>2707</span> * 4. https://developer.mozilla.org/en/DOM/element.classList
|
||
<span class='line'>2708</span> * @param element HTML elements
|
||
<span class='line'>2709</span> * @param class_name class name || {class name 1:, class name 2:, ..}
|
||
<span class='line'>2710</span> * @param flag
|
||
<span class='line'>2711</span> * default: just add the specified className
|
||
<span class='line'>2712</span> * (flag&1)==1: reset className (else just add)
|
||
<span class='line'>2713</span> * (flag&2)==1: return {className1:, className2:, ..}
|
||
<span class='line'>2714</span> * (flag&4)==1: remove className
|
||
<span class='line'>2715</span> * @return
|
||
<span class='line'>2716</span> * @see
|
||
<span class='line'>2717</span> * <a href="http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-95362176" accessdate="2009/12/14 22:26">className of type DOMString</a>,
|
||
<span class='line'>2718</span> * <a href="https://developer.mozilla.org/En/DOM/Element.className" accessdate="2009/12/14 22:27">element.className - MDC</a>
|
||
<span class='line'>2719</span> * @memberOf CeL.net.web
|
||
<span class='line'>2720</span> */</span><span class="WHIT">
|
||
<span class='line'>2721</span> </span><span class="NAME">set_class</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2722</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2723</span> </span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2724</span>
|
||
<span class='line'>2725</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">element.className</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2726</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2727</span> </span><span class="WHIT"> </span><span class="COMM">// if(!flag)flag=0;</span><span class="WHIT">
|
||
<span class='line'>2728</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">remove</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2729</span>
|
||
<span class='line'>2730</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">class_name</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">remove</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2731</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">class_name.join</span><span class="PUNC">(</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2732</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2733</span> </span><span class="WHIT"> </span><span class="NAME">element.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2734</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>2735</span> </span><span class="WHIT"> </span><span class="COMM">// add 時不 detect 是為了速度</span><span class="WHIT">
|
||
<span class='line'>2736</span> </span><span class="WHIT"> </span><span class="NAME">element.className</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2737</span>
|
||
<span class='line'>2738</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2739</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2740</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2741</span>
|
||
<span class='line'>2742</span> </span><span class="WHIT"> </span><span class="COMM">//sl('set_class: remove [' + class_name + '] from [' + o.className + ']');</span><span class="WHIT">
|
||
<span class='line'>2743</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element.className.split</span><span class="PUNC">(</span><span class="REGX">/\s+/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2744</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2745</span>
|
||
<span class='line'>2746</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2747</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2748</span>
|
||
<span class='line'>2749</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">remove</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2750</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">class_name</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2751</span> </span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2752</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2753</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2754</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2755</span> </span><span class="WHIT"> </span><span class="COMM">// has removed</span><span class="WHIT">
|
||
<span class='line'>2756</span> </span><span class="WHIT"> </span><span class="NAME">remove</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2757</span> </span><span class="WHIT"> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2758</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2759</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2760</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">remove</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2761</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2762</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2763</span> </span><span class="WHIT"> </span><span class="NAME">c.push</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2764</span> </span><span class="WHIT"> </span><span class="NAME">element.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c.join</span><span class="PUNC">(</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2765</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2766</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2767</span>
|
||
<span class='line'>2768</span> </span><span class="WHIT"> </span><span class="COMM">//sl('set_class: → ['+o.className+']');</span><span class="WHIT">
|
||
<span class='line'>2769</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2770</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2771</span>
|
||
<span class='line'>2772</span> </span><span class="COMM">// if cN instanceof RegExp, cN should has NO global flag.</span><span class="WHIT">
|
||
<span class='line'>2773</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>2774</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>2775</span> </span><span class="COMM">/**
|
||
<span class='line'>2776</span> * If HTML element has specified class
|
||
<span class='line'>2777</span> * @param {HTMLElement} element HTML elements
|
||
<span class='line'>2778</span> * @param {String} class_name class_name_1[ class_name_2 ..]
|
||
<span class='line'>2779</span> * @return {Boolean}
|
||
<span class='line'>2780</span> */</span><span class="WHIT">
|
||
<span class='line'>2781</span> </span><span class="NAME">has_class</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2782</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.has_class</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element.className</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2783</span> </span><span class="WHIT"> </span><span class="COMM">//class_name = class_name.replace(/\s+$|^\s+/g, '');</span><span class="WHIT">
|
||
<span class='line'>2784</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">class_name</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2785</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2786</span>
|
||
<span class='line'>2787</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">class_name</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2788</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">class_name.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2789</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_s</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2790</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2791</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2792</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2793</span>
|
||
<span class='line'>2794</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">class_name</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2795</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">class_name.test</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2796</span>
|
||
<span class='line'>2797</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2798</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2799</span>
|
||
<span class='line'>2800</span> </span><span class="WHIT"> </span><span class="COMM">//return (new RegExp('(^|\\s)' + class_name + '(\\s|$)'/* ,i */)).test(n);</span><span class="WHIT">
|
||
<span class='line'>2801</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">' '</span><span class="PUNC">+</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="STRN">' '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">!==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2802</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2803</span>
|
||
<span class='line'>2804</span>
|
||
<span class='line'>2805</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>2806</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>2807</span> </span><span class="COMM">/**
|
||
<span class='line'>2808</span> * @param {String} class_name class_name_1[ class_name_2 ..]
|
||
<span class='line'>2809</span> * @param {HTMLElement} element HTML elements
|
||
<span class='line'>2810</span> * @param {HTMLElement} parent_node parent node
|
||
<span class='line'>2811</span> * @param {String} tag_name tag name
|
||
<span class='line'>2812</span> * @return {[HTMLElement]} nodes
|
||
<span class='line'>2813</span> * @see
|
||
<span class='line'>2814</span> * document.getElementsByClassName in prototype.js,
|
||
<span class='line'>2815</span> * jquery('.class')
|
||
<span class='line'>2816</span> *
|
||
<span class='line'>2817</span> * document.querySelector()
|
||
<span class='line'>2818</span> * http://www.w3.org/TR/selectors-api/
|
||
<span class='line'>2819</span> * http://blog.darkthread.net/blogs/darkthreadtw/archive/2008/04/17/document-queryselector-in-ie8.aspx
|
||
<span class='line'>2820</span> */</span><span class="WHIT">
|
||
<span class='line'>2821</span> </span><span class="NAME">find_class</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">class_name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parent_node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tag_name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">call_function</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>2822</span> </span><span class="WHIT"> </span><span class="NAME">flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2823</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">elements</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="WHIT">
|
||
<span class='line'>2824</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parent_node</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">getElementsByTagName</span><span class="PUNC">(</span><span class="NAME">tag_name</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">'*'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">elements</span><span class="WHIT">
|
||
<span class='line'>2825</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">elements.length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2826</span>
|
||
<span class='line'>2827</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2828</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">'(^|\\s)'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">class_name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'(\\s|$)'</span><span class="COMM">/* ,i */</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2829</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2830</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">r.test</span><span class="PUNC">(</span><span class="NAME">elements</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">className</span><span class="PUNC">)</span><span class="COMM">/* has_class(elements, r) */</span><span class="WHIT">
|
||
<span class='line'>2831</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">call_function</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">call_function.call</span><span class="PUNC">(</span><span class="NAME">elements</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2832</span> </span><span class="WHIT"> </span><span class="NAME">c.push</span><span class="PUNC">(</span><span class="NAME">elements</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2833</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2834</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2835</span>
|
||
<span class='line'>2836</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2837</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2838</span>
|
||
<span class='line'>2839</span>
|
||
<span class='line'>2840</span>
|
||
<span class='line'>2841</span>
|
||
<span class='line'>2842</span>
|
||
<span class='line'>2843</span> </span><span class="COMM">/* 處理 popup 用
|
||
<span class='line'>2844</span> 對className的tag作popup處理
|
||
<span class='line'>2845</span> window.onload="dealPopup()";
|
||
<span class='line'>2846</span> <b title="注釋">正文</b>
|
||
<span class='line'>2847</span> */</span><span class="WHIT">
|
||
<span class='line'>2848</span> </span><span class="COMM">//dealPopup[generateCode.dLK]='sPop,has_class';</span><span class="WHIT">
|
||
<span class='line'>2849</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">dealPopup</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">,</span><span class="NAME">classN</span><span class="PUNC">,</span><span class="NAME">func</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2850</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2851</span> </span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'b'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2852</span>
|
||
<span class='line'>2853</span> </span><span class="COMM">/*
|
||
<span class='line'>2854</span> http://enable.nat.gov.tw/document/4_2.jsp
|
||
<span class='line'>2855</span> http://ccca.nctu.edu.tw/~hlb/tavi/ABBRorACRONYM
|
||
<span class='line'>2856</span> 應該用abbr(abbreviation/abbrevitated form/簡稱)
|
||
<span class='line'>2857</span> abbr包含acronym(頭文字/首字母縮寫,通常這個字的發音像一個字)
|
||
<span class='line'>2858</span> 根據W3C的規範說,中日文的縮寫格式要套用的是abbr標籤。
|
||
<span class='line'>2859</span> XHTML2.0把acronym移掉了,只剩下abbr標籤。
|
||
<span class='line'>2860</span> http://www.sovavsiti.cz/css/abbr.html
|
||
<span class='line'>2861</span> if(!!document.all)document.body.innerHTML=document.body.innerHTML.replace(/<\s*(\/?)\s*abbr([>\s])/gi,'<$1span$2');
|
||
<span class='line'>2862</span> */</span><span class="WHIT">
|
||
<span class='line'>2863</span>
|
||
<span class='line'>2864</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2865</span> </span><span class="WHIT"> </span><span class="NAME">dealPopup.list</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2866</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o.length</span><span class="PUNC">)</span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">o.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2867</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">classN</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">has_class</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">classN</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">func</span><span class="WHIT">
|
||
<span class='line'>2868</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2869</span> </span><span class="WHIT"> </span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2870</span> </span><span class="WHIT"> </span><span class="COMM">// 測試是否有特定標籤</span><span class="WHIT">
|
||
<span class='line'>2871</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">sPopP.allTypes.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>2872</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">sPopP.allTypes</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2873</span> </span><span class="WHIT"> </span><span class="NAME">tp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sPopP.allTypes</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2874</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2875</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2876</span> </span><span class="WHIT"> </span><span class="COMM">// 有的話設定event</span><span class="WHIT">
|
||
<span class='line'>2877</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">tp</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">=</span><span class="NAME">sPop</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">sPopF</span><span class="PUNC">[</span><span class="NAME">tp</span><span class="PUNC">]</span><span class="PUNC">|</span><span class="NAME">sPopF.nopop</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2878</span> </span><span class="WHIT"> </span><span class="COMM">//o[i].innerHTML+='<b style="color:peru">['+sPopP.types[tp]+']<\/b>';</span><span class="WHIT">
|
||
<span class='line'>2879</span>
|
||
<span class='line'>2880</span> </span><span class="WHIT"> </span><span class="NAME">dealPopup.list.push</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2881</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="NAME">sPopF.window</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2882</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onclick</span><span class="PUNC">)</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onclick</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Function</span><span class="PUNC">(</span><span class="STRN">'sPop(this,'</span><span class="PUNC">+</span><span class="NAME">tp</span><span class="PUNC">+</span><span class="STRN">');'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">style.cursor</span><span class="PUNC">=</span><span class="STRN">'pointer'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2883</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="NAME">sPopF.popup</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2884</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onmouseover</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="COMM">//o[i].ruby=o[i].popup='',</span><span class="WHIT">
|
||
<span class='line'>2885</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onmouseover</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Function</span><span class="PUNC">(</span><span class="STRN">'sPop(this,'</span><span class="PUNC">+</span><span class="NAME">tp</span><span class="PUNC">+</span><span class="STRN">');'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2886</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onmouseout</span><span class="PUNC">)</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onmouseout</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Function</span><span class="PUNC">(</span><span class="STRN">'sPop(this,sPopF.clearPop);'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2887</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onclick</span><span class="PUNC">)</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onclick</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Function</span><span class="PUNC">(</span><span class="STRN">'this.onmouseout=null;sPop(this,'</span><span class="PUNC">+</span><span class="NAME">tp</span><span class="PUNC">+</span><span class="STRN">');'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">style.cursor</span><span class="PUNC">=</span><span class="STRN">'pointer'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2888</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2889</span> </span><span class="WHIT"> </span><span class="COMM">//else alert(tp+'\n'+sPopF[tp]+'\n'+typeof o[i].onmouseover+'\n'+o[i].onmouseover);</span><span class="WHIT">
|
||
<span class='line'>2890</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2891</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2892</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2893</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2894</span> </span><span class="COMM">/* 注釋(reference) / show popup-window or ruby 2004/4/3 17:20
|
||
<span class='line'>2895</span> http://www.comsharp.com/GetKnowledge/zh-CN/TeamBlogTimothyPage_K742.aspx
|
||
<span class='line'>2896</span>
|
||
<span class='line'>2897</span> example:
|
||
<span class='line'>2898</span> <b onmouseover="sPop(this,sPopF._type_,'注釋')">txt</b>
|
||
<span class='line'>2899</span> <b onmouseover="sPop(this,sPopF._type_)" title="注釋">txt</b>
|
||
<span class='line'>2900</span> window.onload="dealPopup()"; + <b title="注釋">txt</b>,<b sPop="注釋">txt</b>
|
||
<span class='line'>2901</span> <b onmouseover="sPop('.',this)">txt</b> 在每個字旁邊加上[.]或[。]
|
||
<span class='line'>2902</span> sPop('txt') popup txt(自動設成sPopF.popup)
|
||
<span class='line'>2903</span> sPop('txt',sPopF.window) popup txt by window
|
||
<span class='line'>2904</span>
|
||
<span class='line'>2905</span> flag & type:
|
||
<span class='line'>2906</span> sPopF.title/sPopF.auto (依字數)自動選取
|
||
<span class='line'>2907</span> sPopF.ruby 採用<ruby>
|
||
<span class='line'>2908</span> sPopF.popup 採用popup window
|
||
<span class='line'>2909</span> sPopF.window 將資料開在新視窗
|
||
<span class='line'>2910</span>
|
||
<span class='line'>2911</span> sPopF.nopop just test, don't popup(for ruby)
|
||
<span class='line'>2912</span> sPopF.repeat repeat ruby
|
||
<span class='line'>2913</span> sPopF.clearPop clear popup window
|
||
<span class='line'>2914</span> sPopF.force 若是不能使用此種表示方法,則放棄顯示。(for popup @ Mozilla)
|
||
<span class='line'>2915</span>
|
||
<span class='line'>2916</span> style class application(應用):
|
||
<span class='line'>2917</span> sPopP.DclassName中所定之className為觸發事件時會設定的class
|
||
<span class='line'>2918</span>
|
||
<span class='line'>2919</span> 執行環境environment:
|
||
<span class='line'>2920</span> JScript @ HTML
|
||
<span class='line'>2921</span>
|
||
<span class='line'>2922</span> include function:
|
||
<span class='line'>2923</span> String.x()
|
||
<span class='line'>2924</span> parseFunction()
|
||
<span class='line'>2925</span> setObjValue()
|
||
<span class='line'>2926</span>
|
||
<span class='line'>2927</span> TODO:
|
||
<span class='line'>2928</span> submenu
|
||
<span class='line'>2929</span> http://dynamicdrive.com/dynamicindex1/popupmenu.htm
|
||
<span class='line'>2930</span> Tipped - The Javascript Tooltip Framework
|
||
<span class='line'>2931</span> http://projects.nickstakenburg.com/tipped
|
||
<span class='line'>2932</span>
|
||
<span class='line'>2933</span> How to Create a Valid Non-Javascript Lightbox | Carsonified
|
||
<span class='line'>2934</span> http://carsonified.com/blog/design/css/how-to-create-a-valid-non-javascript-lightbox/
|
||
<span class='line'>2935</span>
|
||
<span class='line'>2936</span> move/resize/最小化: popup dialog
|
||
<span class='line'>2937</span> http://deluxepopupwindow.com/html-popup-dialog-vista-graphite.html
|
||
<span class='line'>2938</span>
|
||
<span class='line'>2939</span> 獨佔 window, 訊息列, 多功能(HTML+Script)內容
|
||
<span class='line'>2940</span> http://vision-media.ca/resources/jquery/jquery-popup-plugin-review
|
||
<span class='line'>2941</span>
|
||
<span class='line'>2942</span> key (Esc)
|
||
<span class='line'>2943</span> time limit
|
||
<span class='line'>2944</span>
|
||
<span class='line'>2945</span> */</span><span class="WHIT">
|
||
<span class='line'>2946</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">sPopP</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// sPop properties object</span><span class="WHIT">
|
||
<span class='line'>2947</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">sPopF</span><span class="WHIT"> </span><span class="COMM">// flag</span><span class="WHIT">
|
||
<span class='line'>2948</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">sPopError</span><span class="COMM">// for error</span><span class="WHIT">
|
||
<span class='line'>2949</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2950</span>
|
||
<span class='line'>2951</span> </span><span class="COMM">// 初始值設定 & 設定flag</span><span class="WHIT">
|
||
<span class='line'>2952</span> </span><span class="COMM">//if(sPopP)alert('sPopP 已被佔用!');else</span><span class="WHIT">
|
||
<span class='line'>2953</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">sPopInit</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2954</span>
|
||
<span class='line'>2955</span> </span><span class="WHIT"> </span><span class="COMM">// 預設style class name:(null:used last time),ruby,popup,window</span><span class="WHIT">
|
||
<span class='line'>2956</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.DclassName</span><span class="PUNC">=</span><span class="STRN">',popupedTxt_ruby,popupedTxt,popupedTxt'</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2957</span> </span><span class="WHIT"> </span><span class="COMM">// 已登記的背景style,請在CSS中加入[sPopC]_[body class name]</span><span class="WHIT">
|
||
<span class='line'>2958</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.bgS</span><span class="PUNC">=</span><span class="STRN">'bgb,bgn'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2959</span> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2960</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">sPopP.bgS.split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">sPopP.bgS</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2961</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">t.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="NAME">sPopP.bgS</span><span class="PUNC">[</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">i</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2962</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2963</span> </span><span class="WHIT"> </span><span class="COMM">// popup window style</span><span class="WHIT">
|
||
<span class='line'>2964</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.popupS</span><span class="PUNC">=</span><span class="STRN">"color:blue;padding:.5em;overflow:auto;position:absolute;top:0;left:0;width:100%;height:100%;scrollbar-face-color:khaki;scrollbar-arrow-color:teal;border:1px solid green;font:normal 10pt tahoma;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffd700, EndColorStr=#ffffff);"</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2965</span> </span><span class="WHIT"> </span><span class="COMM">// chars to repeat(for ruby)</span><span class="WHIT">
|
||
<span class='line'>2966</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.RepeatC</span><span class="PUNC">=</span><span class="STRN">'‧.。ヽ○●◎☆★※*#▽▼△▲◆◇□■↓↑'</span><span class="PUNC">;</span><span class="COMM">//.turnU();</span><span class="WHIT">
|
||
<span class='line'>2967</span> </span><span class="WHIT"> </span><span class="COMM">// types:auto,這些attribute可被處理,且將被視為自動選取type。</span><span class="WHIT">
|
||
<span class='line'>2968</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.autoTypes</span><span class="PUNC">=</span><span class="STRN">'title,_sPop'</span><span class="PUNC">;</span><span class="COMM">//+',_'+sPopP.functionName</span><span class="WHIT">
|
||
<span class='line'>2969</span> </span><span class="WHIT"> </span><span class="COMM">// types,最多七種</span><span class="WHIT">
|
||
<span class='line'>2970</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.types</span><span class="PUNC">=</span><span class="STRN">'ruby,popup,window'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// +div(參考dealLinkPopup())</span><span class="WHIT">
|
||
<span class='line'>2971</span> </span><span class="WHIT"> </span><span class="COMM">// 所有可用的types,可用來detect是否能為sPop()所接受。但Mozilla中無法使用title之外的attribute。</span><span class="WHIT">
|
||
<span class='line'>2972</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.allTypes</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">sPopP.autoTypes</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">sPopP.types</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2973</span> </span><span class="WHIT"> </span><span class="COMM">// function name</span><span class="WHIT">
|
||
<span class='line'>2974</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.functionName</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="COMM">//;parseFunction().funcName;</span><span class="WHIT">
|
||
<span class='line'>2975</span> </span><span class="WHIT"> </span><span class="COMM">// popup window(for popup)</span><span class="WHIT">
|
||
<span class='line'>2976</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window.createPopup</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">sPopP.window</span><span class="PUNC">=</span><span class="NAME">window.createPopup</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2977</span> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2978</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">sPopP.types.split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">T</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2979</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">t.length</span><span class="PUNC">;</span><span class="PUNC">)</span><span class="NAME">T</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">'='</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">;</span><span class="COMM">//alert(T);</span><span class="WHIT">
|
||
<span class='line'>2980</span> </span><span class="WHIT"> </span><span class="NAME">setObjValue</span><span class="PUNC">(</span><span class="STRN">'sPopF'</span><span class="PUNC">,</span><span class="STRN">'title=0,auto=0,'</span><span class="WHIT">
|
||
<span class='line'>2981</span> </span><span class="WHIT"> </span><span class="COMM">//+'_'+sPopP.functionName+'=0,'</span><span class="WHIT">
|
||
<span class='line'>2982</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="NAME">T</span><span class="PUNC">+</span><span class="STRN">'nopop=8,repeat=16,clearPop=32,force=64'</span><span class="PUNC">,</span><span class="STRN">'int'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2983</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2984</span> </span><span class="COMM">// sPopP.types[index]=type name</span><span class="WHIT">
|
||
<span class='line'>2985</span> </span><span class="NAME">sPopP.types</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>2986</span> </span><span class="WHIT"> </span><span class="COMM">//'_'+sPopP.functionName+</span><span class="WHIT">
|
||
<span class='line'>2987</span> </span><span class="WHIT"> </span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">sPopP.types</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2988</span> </span><span class="NAME">sPopP.commentTitle</span><span class="PUNC">=</span><span class="STRN">'Comment'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 註解</span><span class="WHIT">
|
||
<span class='line'>2989</span> </span><span class="NAME">sPopP.commentTitlePattern</span><span class="PUNC">=</span><span class="NAME">sPopP.commentTitle</span><span class="PUNC">+</span><span class="STRN">' of %s'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>2990</span> </span><span class="NAME">sPopP.closeM</span><span class="PUNC">=</span><span class="STRN">'Close'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// close message: 關閉視窗或popup</span><span class="WHIT">
|
||
<span class='line'>2991</span> </span><span class="NAME">sPopP.biggerM</span><span class="PUNC">=</span><span class="STRN">'Bigger'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// bigger message: 放大</span><span class="WHIT">
|
||
<span class='line'>2992</span> </span><span class="NAME">sPopP.resetM</span><span class="PUNC">=</span><span class="STRN">'Reset size'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// reset size message: 回復原大小</span><span class="WHIT">
|
||
<span class='line'>2993</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>2994</span>
|
||
<span class='line'>2995</span> </span><span class="COMM">// 主object(正文或主object,會從之取得正文與注釋)[, flag, text string or object(注釋,會蓋過從主object取得之text), 使用的class name]</span><span class="WHIT">
|
||
<span class='line'>2996</span> </span><span class="COMM">//sPop[generateCode.dLK]='sPopP,sPopF,sPopInit,*sPopInit();';</span><span class="WHIT">
|
||
<span class='line'>2997</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">sPop</span><span class="PUNC">(</span><span class="NAME">oPos</span><span class="PUNC">,</span><span class="NAME">flag</span><span class="PUNC">,</span><span class="NAME">oTxt</span><span class="PUNC">,</span><span class="NAME">classN</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>2998</span> </span><span class="WHIT"> </span><span class="COMM">//if(flag&sPopF.clearPop){if(sPopP.window)sPopP.window.hide();return;}</span><span class="WHIT">
|
||
<span class='line'>2999</span>
|
||
<span class='line'>3000</span> </span><span class="WHIT"> </span><span class="COMM">// input value test & 修正</span><span class="WHIT">
|
||
<span class='line'>3001</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">oPos</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">oTxt</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3002</span>
|
||
<span class='line'>3003</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">limitW</span><span class="PUNC">=</span><span class="NAME">screen.width</span><span class="PUNC">-</span><span class="NUMB">50</span><span class="PUNC">,</span><span class="NAME">limitH</span><span class="PUNC">=</span><span class="NAME">screen.height</span><span class="PUNC">>></span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3004</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">sPopP.width</span><span class="PUNC">)</span><span class="NAME">sPopP.width</span><span class="PUNC">=</span><span class="NUMB">250</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">sPopP.width</span><span class="PUNC">></span><span class="NAME">limitW</span><span class="PUNC">)</span><span class="NAME">sPopP.width</span><span class="PUNC">=</span><span class="NAME">limitW</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3005</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">sPopP.height</span><span class="PUNC">)</span><span class="NAME">sPopP.height</span><span class="PUNC">=</span><span class="NUMB">100</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">sPopP.height</span><span class="PUNC">></span><span class="NAME">limitH</span><span class="PUNC">)</span><span class="NAME">sPopP.height</span><span class="PUNC">=</span><span class="NAME">limitH</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3006</span>
|
||
<span class='line'>3007</span> </span><span class="WHIT"> </span><span class="COMM">// 初始值設定</span><span class="WHIT">
|
||
<span class='line'>3008</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">sPopP.functionName</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3009</span> </span><span class="WHIT"> </span><span class="NAME">sPopF</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">sPopP.types</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="STRN">'_'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">sPopP.functionName</span><span class="PUNC">=</span><span class="NAME">parseFunction</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">funcName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3010</span>
|
||
<span class='line'>3011</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">repopMark</span><span class="PUNC">=</span><span class="STRN">'repop'</span><span class="PUNC">,</span><span class="NAME">repop</span><span class="PUNC">=</span><span class="NAME">oPos</span><span class="PUNC">===</span><span class="NAME">repopMark</span><span class="PUNC">,</span><span class="NAME">nopop</span><span class="PUNC">=</span><span class="NAME">flag</span><span class="PUNC">&</span><span class="NAME">sPopF.nopop</span><span class="PUNC">,</span><span class="NAME">tp</span><span class="PUNC">=</span><span class="NAME">flag</span><span class="PUNC">&</span><span class="NUMB">7</span><span class="WHIT">
|
||
<span class='line'>3012</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">useAttbTxt</span><span class="PUNC">=</span><span class="KEYW">false</span><span class="PUNC">,</span><span class="NAME">brReg</span><span class="PUNC">=</span><span class="REGX">/\r*\n/g</span><span class="PUNC">,</span><span class="NAME">brT</span><span class="PUNC">=</span><span class="STRN">'<br/>\n'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 轉成br用</span><span class="WHIT">
|
||
<span class='line'>3013</span>
|
||
<span class='line'>3014</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">repop</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3015</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">sPopP.popObj</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">sPopP.popObj</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">sPopP.popObj.innerHTML</span><span class="PUNC">!=</span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">sPopP.popObj.innerHTML</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3016</span> </span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="PUNC">=</span><span class="NAME">sPopP.popObj</span><span class="PUNC">,</span><span class="NAME">tp</span><span class="PUNC">=</span><span class="NAME">sPopF.popup</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 重pop時不作其他判別處置</span><span class="WHIT">
|
||
<span class='line'>3017</span> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3018</span>
|
||
<span class='line'>3019</span> </span><span class="WHIT"> </span><span class="COMM">// 處理object</span><span class="WHIT">
|
||
<span class='line'>3020</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3021</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">oPos.length</span><span class="PUNC"><</span><span class="NUMB">32</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">oPos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3022</span> </span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">oPos</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 輸入object name時轉成object</span><span class="WHIT">
|
||
<span class='line'>3023</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">oTxt</span><span class="PUNC">)</span><span class="NAME">oTxt</span><span class="PUNC">=</span><span class="NAME">oPos</span><span class="WHIT"> </span><span class="COMM">// 若只輸入oPos,將之當作注釋(oTxt)。</span><span class="WHIT">
|
||
<span class='line'>3024</span> </span><span class="WHIT"> </span><span class="COMM">//,oPos=typeof null=='object'?0:null;</span><span class="WHIT">
|
||
<span class='line'>3025</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">oPos</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 若是typeof null=='object',請設成false</span><span class="WHIT">
|
||
<span class='line'>3026</span>
|
||
<span class='line'>3027</span> </span><span class="WHIT"> </span><span class="COMM">// 設定oTxt 1/4</span><span class="WHIT">
|
||
<span class='line'>3028</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oTxt</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">oTxt.innerHTML</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="NAME">oTxt</span><span class="PUNC">=</span><span class="NAME">oTxt.innerHTML</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3029</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">oTxt</span><span class="PUNC">)</span><span class="NAME">oTxt</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 轉成string</span><span class="WHIT">
|
||
<span class='line'>3030</span>
|
||
<span class='line'>3031</span> </span><span class="WHIT"> </span><span class="COMM">// (自動)判別使用的type</span><span class="WHIT">
|
||
<span class='line'>3032</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">useAutoTxt</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3033</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="NAME">sPopF.auto</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3034</span> </span><span class="WHIT"> </span><span class="COMM">// 設定oTxt 2/4 : 知道是自動判別後先設定</span><span class="WHIT">
|
||
<span class='line'>3035</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">oTxt</span><span class="PUNC">||</span><span class="NAME">oTxt</span><span class="PUNC">==</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3036</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">oPos</span><span class="PUNC">[</span><span class="NAME">sPopP.types</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="NAME">oTxt</span><span class="PUNC">=</span><span class="NAME">oPos</span><span class="PUNC">[</span><span class="NAME">sPopP.types</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">useAutoTxt</span><span class="PUNC">=</span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3037</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">oPos.title</span><span class="PUNC">)</span><span class="NAME">oTxt</span><span class="PUNC">=</span><span class="NAME">oPos.title</span><span class="PUNC">,</span><span class="NAME">useAutoTxt</span><span class="PUNC">=</span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 以<b title="~">的用法來說,這是最常經過的path</span><span class="WHIT">
|
||
<span class='line'>3038</span>
|
||
<span class='line'>3039</span> </span><span class="WHIT"> </span><span class="COMM">// 假如沒有oTxt.gText(),改成oTxt.replace(/<[^>]*>/g,'')之即可。這是為了預防HTML的情形。</span><span class="WHIT">
|
||
<span class='line'>3040</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">=</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oTxt</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">?</span><span class="NAME">oTxt.length</span><span class="PUNC">:</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="COMM">//typeof oTxt=='string'?oTxt.length:typeof oTxt=='object'&&oTxt.innerHTML?oTxt.innerHTML.length:0;</span><span class="WHIT">
|
||
<span class='line'>3041</span> </span><span class="WHIT"> </span><span class="COMM">//alert(len+','+(len*.7)+','+oPos.innerHTML.length);</span><span class="WHIT">
|
||
<span class='line'>3042</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">oPos.doneRuby</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">oPos.innerHTML.match</span><span class="PUNC">(</span><span class="REGX">/<\s*ruby/i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</span><span class="PUNC"><</span><span class="NUMB">60</span><span class="PUNC">&&</span><span class="NAME">len</span><span class="PUNC">*</span><span class="PUNC">.</span><span class="NUMB">7</span><span class="PUNC">-</span><span class="NUMB">9</span><span class="PUNC"><</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oPos.innerText</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">?</span><span class="NAME">oPos.innerText</span><span class="PUNC">:</span><span class="NAME">oPos.innerHTML</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3043</span> </span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">=</span><span class="STRN">'ruby'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// ruby的條件</span><span class="WHIT">
|
||
<span class='line'>3044</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">sPopP.window</span><span class="PUNC">&&</span><span class="NAME">len</span><span class="PUNC"><</span><span class="NUMB">300</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3045</span> </span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">=</span><span class="STRN">'popup'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3046</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">&&</span><span class="NAME">oPos.title</span><span class="PUNC">===</span><span class="NAME">oTxt</span><span class="PUNC">)</span><span class="NAME">oPos</span><span class="PUNC">[</span><span class="NAME">sPopP.types</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">oTxt</span><span class="PUNC">,</span><span class="NAME">oPos.title</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3047</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">=</span><span class="STRN">'window'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3048</span>
|
||
<span class='line'>3049</span> </span><span class="WHIT"> </span><span class="COMM">// 設定oTxt 3/4 & type</span><span class="WHIT">
|
||
<span class='line'>3050</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">oTxt</span><span class="PUNC">||</span><span class="NAME">oTxt</span><span class="PUNC">==</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3051</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">oPos</span><span class="PUNC">[</span><span class="NAME">tp</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="NAME">oTxt</span><span class="PUNC">=</span><span class="NAME">oPos</span><span class="PUNC">[</span><span class="NAME">tp</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">useAutoTxt</span><span class="PUNC">=</span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3052</span>
|
||
<span class='line'>3053</span> </span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">=</span><span class="NAME">sPopF</span><span class="PUNC">[</span><span class="NAME">tp</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3054</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3055</span>
|
||
<span class='line'>3056</span> </span><span class="WHIT"> </span><span class="COMM">// 設定oTxt 4/4</span><span class="WHIT">
|
||
<span class='line'>3057</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">oTxt</span><span class="PUNC">||</span><span class="NAME">oTxt</span><span class="PUNC">==</span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3058</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">oTxt</span><span class="PUNC">=</span><span class="NAME">oPos</span><span class="PUNC">[</span><span class="NAME">sPopP.types</span><span class="PUNC">[</span><span class="NAME">tp</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">oTxt</span><span class="PUNC">=</span><span class="NAME">oPos</span><span class="PUNC">[</span><span class="NAME">sPopP.types</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">oTxt</span><span class="PUNC">=</span><span class="NAME">oPos.title</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="NAME">useAutoTxt</span><span class="PUNC">=</span><span class="KEYW">true</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3059</span>
|
||
<span class='line'>3060</span> </span><span class="WHIT"> </span><span class="COMM">// 設定className與position</span><span class="WHIT">
|
||
<span class='line'>3061</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.left</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">sPopP.top</span><span class="PUNC">=</span><span class="NUMB">20</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// popup left,popup top初始值</span><span class="WHIT">
|
||
<span class='line'>3062</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">oPos</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3063</span> </span><span class="WHIT"> </span><span class="COMM">// popup 在滑鼠指標處</span><span class="WHIT">
|
||
<span class='line'>3064</span> </span><span class="WHIT"> </span><span class="COMM">// see: add_listener() </span><span class="WHIT">
|
||
<span class='line'>3065</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">sPopP.left</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">event.offsetX</span><span class="PUNC">,</span><span class="NAME">sPopP.top</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">event.offsetY</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3066</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">oPos.className</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">sPopP.DclassName</span><span class="PUNC">[</span><span class="NAME">tp</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3067</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">classN</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">classN</span><span class="PUNC">=</span><span class="NAME">document.body.className</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">sPopP.bgS</span><span class="PUNC">[</span><span class="NAME">classN</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="NAME">classN</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3068</span> </span><span class="WHIT"> </span><span class="NAME">oPos.className</span><span class="PUNC">=</span><span class="NAME">sPopP.DclassName</span><span class="PUNC">[</span><span class="NAME">tp</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">classN</span><span class="PUNC">?</span><span class="STRN">'_'</span><span class="PUNC">+</span><span class="NAME">classN</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3069</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">,</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">oPos.style</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">s.fontWeight</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">w</span><span class="PUNC">=</span><span class="NAME">oPos.parentNode.style.fontWeight</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">s.fontWeight</span><span class="PUNC">=</span><span class="NAME">w</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 除非有明確設定font-weight,否則通常不會有效</span><span class="WHIT">
|
||
<span class='line'>3070</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3071</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3072</span>
|
||
<span class='line'>3073</span> </span><span class="WHIT"> </span><span class="COMM">// 修正</span><span class="WHIT">
|
||
<span class='line'>3074</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">==</span><span class="NAME">sPopF.popup</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">sPopP.window</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">flag</span><span class="PUNC">&</span><span class="NAME">sPopF.force</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3075</span> </span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">=</span><span class="NAME">sPopF.window</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Mozilla中無法顯示popup</span><span class="WHIT">
|
||
<span class='line'>3076</span>
|
||
<span class='line'>3077</span>
|
||
<span class='line'>3078</span> </span><span class="WHIT"> </span><span class="COMM">//alert(sPopP.types[tp]+','+( sPopP.window || flag&sPopF.force )+','+oTxt);</span><span class="WHIT">
|
||
<span class='line'>3079</span> </span><span class="WHIT"> </span><span class="COMM">// 處理pop</span><span class="WHIT">
|
||
<span class='line'>3080</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="NAME">sPopF.ruby</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3081</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oPos</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">oPos.innerHTML</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// oPop非HTML element就return</span><span class="WHIT">
|
||
<span class='line'>3082</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">oPos.doneRuby</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 已經處理過<ruby>就pass</span><span class="WHIT">
|
||
<span class='line'>3083</span> </span><span class="WHIT"> </span><span class="COMM">// 處理repeat</span><span class="WHIT">
|
||
<span class='line'>3084</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="PUNC">&</span><span class="NAME">sPopF.repeat</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">sPopP.RepeatC.indexOf</span><span class="PUNC">(</span><span class="NAME">oTxt</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3085</span> </span><span class="WHIT"> </span><span class="NAME">oPos.title</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">,</span><span class="NAME">oTxt</span><span class="PUNC">=</span><span class="NAME">window.navigator.userAgent.indexOf</span><span class="PUNC">(</span><span class="STRN">"MSIE"</span><span class="PUNC">)</span><span class="PUNC"><</span><span class="NUMB">0</span><span class="PUNC">?</span><span class="STRN">''</span><span class="PUNC">:</span><span class="NAME">oTxt.x</span><span class="PUNC">(</span><span class="NAME">oPos.innerHTML.length</span><span class="PUNC">/</span><span class="NAME">oTxt.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 只有IE提供ruby,所以這時候不宜加入旁點功能。</span><span class="WHIT">
|
||
<span class='line'>3086</span>
|
||
<span class='line'>3087</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3088</span> </span><span class="WHIT"> </span><span class="NAME">oPos.innerHTML</span><span class="PUNC">=</span><span class="STRN">'<ruby><rb>'</span><span class="PUNC">+</span><span class="NAME">oPos.innerHTML</span><span class="PUNC">+</span><span class="STRN">'<\/rb><rp>'</span><span class="WHIT">
|
||
<span class='line'>3089</span> </span><span class="WHIT"> </span><span class="COMM">// 半形與全形的括弧</span><span class="WHIT">
|
||
<span class='line'>3090</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">oTxt</span><span class="PUNC">?</span><span class="NAME">window.navigator.userAgent.indexOf</span><span class="PUNC">(</span><span class="STRN">"Opera"</span><span class="PUNC">)</span><span class="PUNC">>=</span><span class="NUMB">0</span><span class="PUNC">||</span><span class="REGX">/^[a-z\d\s_,.;"'\[\]{}+\-*\/]*$/i</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">oTxt</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="STRN">'(<\/rp><rt>'</span><span class="PUNC">+</span><span class="NAME">oTxt</span><span class="PUNC">+</span><span class="STRN">'<\/rt><rp>)'</span><span class="PUNC">:</span><span class="STRN">'(<\/rp><rt>'</span><span class="PUNC">+</span><span class="NAME">oTxt</span><span class="PUNC">+</span><span class="STRN">'<\/rt><rp>)'</span><span class="PUNC">:</span><span class="STRN">'<\/rp><rt><\/rt><rp>'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3091</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'<\/rp><\/ruby>'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3092</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3093</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">e.number</span><span class="PUNC">&</span><span class="NUMB">0xFFFF</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3094</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">==</span><span class="NUMB">601</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">sPopError</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">||</span><span class="NAME">sPopError</span><span class="PUNC">!=</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'Error: '</span><span class="PUNC">+</span><span class="NAME">e.description</span><span class="PUNC">+</span><span class="STRN">' at\n'</span><span class="PUNC">+</span><span class="NAME">oPos.outerHTML</span><span class="PUNC">+</span><span class="STRN">'\n\n★也許是在這之前的tag出錯,例如有<b>卻沒有<\/b>。'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3095</span> </span><span class="WHIT"> </span><span class="NAME">sPopError</span><span class="PUNC">=</span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3096</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3097</span> </span><span class="WHIT"> </span><span class="NAME">oPos.doneRuby</span><span class="PUNC">=</span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3098</span>
|
||
<span class='line'>3099</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="NAME">sPopF.popup</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3100</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">nopop</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">sPopP.window</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3101</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">repop</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3102</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">useAutoTxt</span><span class="PUNC">)</span><span class="NAME">oTxt</span><span class="PUNC">=</span><span class="NAME">oTxt.replace</span><span class="PUNC">(</span><span class="NAME">brReg</span><span class="PUNC">,</span><span class="NAME">brT</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3103</span> </span><span class="WHIT"> </span><span class="COMM">// 這是一種註解功能,在mouseout後,假定讀者繼續讀下去,所以就讓popup object消失。想要多看一點的,會去按他,這時才讓popup object繼續存在。</span><span class="WHIT">
|
||
<span class='line'>3104</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.window.document.body.innerHTML</span><span class="PUNC">=</span><span class="COMM">//oTxt=</span><span class="WHIT">
|
||
<span class='line'>3105</span> </span><span class="WHIT"> </span><span class="STRN">'<div style="'</span><span class="PUNC">+</span><span class="NAME">sPopP.popupS</span><span class="PUNC">+</span><span class="STRN">'" onblur="parent.sPopP.window.hide();" title="reference">[<b style="color:peru;cursor:pointer;" onclick="parent.sPopP.window.hide();">'</span><span class="PUNC">+</span><span class="NAME">sPopP.closeMessage</span><span class="PUNC">+</span><span class="STRN">'<\/b>] [<b style="color:green;cursor:pointer;" onclick="with(parent)sPopP.width+=100,sPopP.height+=50,'</span><span class="WHIT">
|
||
<span class='line'>3106</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="NAME">sPopP.functionName</span><span class="PUNC">+</span><span class="STRN">'(\''</span><span class="PUNC">+</span><span class="NAME">repopMark</span><span class="PUNC">+</span><span class="STRN">'\');">'</span><span class="PUNC">+</span><span class="NAME">sPopP.biggerM</span><span class="PUNC">+</span><span class="STRN">'<\/b>] [<b style="color:orange;cursor:pointer;" onclick="with(parent)sPopP.width=sPopP.height=0,'</span><span class="PUNC">+</span><span class="NAME">sPopP.functionName</span><span class="PUNC">+</span><span class="STRN">'(\''</span><span class="PUNC">+</span><span class="NAME">repopMark</span><span class="PUNC">+</span><span class="STRN">'\');">'</span><span class="PUNC">+</span><span class="NAME">sPopP.resetM</span><span class="PUNC">+</span><span class="STRN">'<\/b>]<hr style="color:purple;height:1px"/>'</span><span class="PUNC">+</span><span class="NAME">oTxt.replace</span><span class="PUNC">(</span><span class="REGX">/'/g</span><span class="PUNC">,</span><span class="STRN">'''</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'<\/div>'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3107</span> </span><span class="WHIT"> </span><span class="NAME">sPopP.popObj</span><span class="PUNC">=</span><span class="NAME">oPos</span><span class="PUNC">||</span><span class="NAME">document.body</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// object deal now(for popup:repop)</span><span class="WHIT">
|
||
<span class='line'>3108</span> </span><span class="WHIT"> </span><span class="COMM">//if(typeof oPos.onmouseout!='undefined')oPos.onmouseout=function(){sPopP.window.hide();};</span><span class="WHIT">
|
||
<span class='line'>3109</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3110</span> </span><span class="WHIT"> </span><span class="COMM">//alert(sPopP.width+','+sPopP.height);</span><span class="WHIT">
|
||
<span class='line'>3111</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">flag</span><span class="PUNC">&</span><span class="NAME">sPopF.clearPop</span><span class="PUNC">)</span><span class="NAME">sPopP.window.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3112</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">sPopP.window.show</span><span class="PUNC">(</span><span class="NAME">sPopP.left</span><span class="PUNC">,</span><span class="NAME">sPopP.top</span><span class="PUNC">,</span><span class="NAME">sPopP.width</span><span class="PUNC">,</span><span class="NAME">sPopP.height</span><span class="PUNC">,</span><span class="NAME">oPos</span><span class="PUNC">||</span><span class="NAME">document.body</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3113</span>
|
||
<span class='line'>3114</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tp</span><span class="PUNC">==</span><span class="NAME">sPopF.window</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3115</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">nopop</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3116</span> </span><span class="WHIT"> </span><span class="COMM">//if(typeof netscape=='object')netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); // 創造無邊框視窗:titlebar=no dependent:ns only 全螢幕:channelmode 带有收藏链接工具栏的窗口:directories 网页对话框:'dialogWidth:400px;dialogHeight:300px;dialogLeft:200px;dialogTop:150px;center:yes;help:yes;resizable:yes;status:yes'</span><span class="WHIT">
|
||
<span class='line'>3117</span> </span><span class="COMM">/*
|
||
<span class='line'>3118</span> dialogHeight: iHeight 设置对话框窗口的高度。
|
||
<span class='line'>3119</span> dialogWidth: iWidth 设置对话框窗口的宽度。
|
||
<span class='line'>3120</span> dialogLeft: iXPos 设置对话框窗口相对于桌面左上角的left位置。
|
||
<span class='line'>3121</span> dialogTop: iYPos 设置对话框窗口相对于桌面左上角的top位置。
|
||
<span class='line'>3122</span> center: {yes | no | 1 | 0 } 指定是否将对话框在桌面上居中,默认值是“yes”。
|
||
<span class='line'>3123</span> help: {yes | no | 1 | 0 } 指定对话框窗口中是否显示上下文敏感的帮助图标。默认值是“yes”。
|
||
<span class='line'>3124</span> resizable: {yes | no | 1 | 0 } 指定是否对话框窗口大小可变。默认值是“no”。
|
||
<span class='line'>3125</span> status: {yes | no | 1 | 0 } 指定对话框窗口是否显示状态栏。对于非模式对话框窗口,默认值是“yes”;对于模式对话框窗口,默认值是 “no”。
|
||
<span class='line'>3126</span>
|
||
<span class='line'>3127</span> window.showModalDialog(), window.showModelessDialog(): IE only. 不如用Ajax
|
||
<span class='line'>3128</span> */</span><span class="WHIT">
|
||
<span class='line'>3129</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">=</span><span class="NAME">window.open</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">,</span><span class="STRN">'comment'</span><span class="PUNC">,</span><span class="STRN">'titlebar=no,dependent,resizable=1,menubar=0,toolbar=0,location=0,scrollbars=1,width=550,height=400'</span><span class="COMM">/*,fullscreen*/</span><span class="PUNC">,</span><span class="KEYW">false</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3130</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">sPopP.commentTitle</span><span class="PUNC">,</span><span class="NAME">_t</span><span class="PUNC">=</span><span class="NAME">oPos.innerHTML</span><span class="PUNC">&&</span><span class="NAME">oPos.innerHTML.length</span><span class="PUNC"><</span><span class="NUMB">9</span><span class="PUNC">?</span><span class="NAME">sPopP.commentTitlePattern.replace</span><span class="PUNC">(</span><span class="REGX">/%s/</span><span class="PUNC">,</span><span class="NAME">oPos.innerHTML</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// head, document.title</span><span class="WHIT">
|
||
<span class='line'>3131</span> </span><span class="WHIT"> </span><span class="COMM">//if(typeof netscape=='object')netscape.security.PrivilegeManager.disablePrivilege("UniversalBrowserWrite");</span><span class="WHIT">
|
||
<span class='line'>3132</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">document.title</span><span class="PUNC">)</span><span class="NAME">t</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">' @ ['</span><span class="PUNC">+</span><span class="NAME">document.title</span><span class="PUNC">+</span><span class="STRN">']'</span><span class="PUNC">,</span><span class="NAME">_t</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">' @ '</span><span class="PUNC">+</span><span class="NAME">document.title</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3133</span> </span><span class="WHIT"> </span><span class="COMM">//else t+=' @ [<a href="'+location.href+'">'+location.pathname+'<\/a>]';</span><span class="WHIT">
|
||
<span class='line'>3134</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">w.document</span><span class="PUNC">)</span><span class="NAME">open</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3135</span> </span><span class="WHIT"> </span><span class="NAME">write</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>3136</span> </span><span class="WHIT"> </span><span class="COMM">//'<?xml version="1.1" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="content-type" content="text/html;charset=utf-8"/><title>'</span><span class="WHIT">
|
||
<span class='line'>3137</span> </span><span class="WHIT"> </span><span class="COMM">//+_t+'<\/title><script type="text/javascript">window.onblur=function(){window.close();};<\/script><\/head><body><b style="color:#11f;">'+t+':<\/b>'</span><span class="WHIT">
|
||
<span class='line'>3138</span> </span><span class="WHIT"> </span><span class="STRN">'<script type="text/javascript">window.onblur=function(){window.close();};<\/script><b style="color:#11f;">'</span><span class="PUNC">+</span><span class="NAME">t</span><span class="PUNC">+</span><span class="STRN">':<\/b>'</span><span class="WHIT">
|
||
<span class='line'>3139</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">oPos.innerHTML</span><span class="PUNC">?</span><span class="STRN">'<div id="s" style="color:#488;background-color:#FF8;">\n'</span><span class="PUNC">+</span><span class="NAME">oPos.innerHTML.replace</span><span class="PUNC">(</span><span class="REGX">/\n/g</span><span class="PUNC">,</span><span class="STRN">'<br/>'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/ /g</span><span class="PUNC">,</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'\n<\/div><hr/>'</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">//;white-space:normal;width:500px:useless ** 這邊會對<b title="..等造成影響!</span><span class="WHIT">
|
||
<span class='line'>3140</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'<div id="c" style="color:#404;background-color:#8FF;">\n'</span><span class="PUNC">+</span><span class="NAME">oTxt.replace</span><span class="PUNC">(</span><span class="REGX">/\n/g</span><span class="PUNC">,</span><span class="STRN">'<br/>'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/ /g</span><span class="PUNC">,</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// 以不換行(pre)的方式顯示.patch</span><span class="WHIT">
|
||
<span class='line'>3141</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'\n<\/div><hr/>[ <b style="cursor:pointer;color:#40f;" onclick="javascript:opener.focus();self.close();">'</span><span class="PUNC">+</span><span class="NAME">sPopP.closeMessage</span><span class="PUNC">+</span><span class="STRN">'<\/b> ]'</span><span class="PUNC">)</span><span class="COMM">//+'</body></html>'</span><span class="WHIT">
|
||
<span class='line'>3142</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">close</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">title</span><span class="PUNC">=</span><span class="NAME">_t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3143</span> </span><span class="WHIT"> </span><span class="NAME">w.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3144</span> </span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// open出來的窗口即使close了,它的window對象還是存在的,要記得刪除引用 http://www.blogjava.net/tim-wu/archive/2006/05/29/48729.html</span><span class="WHIT">
|
||
<span class='line'>3145</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="COMM">//else alert('type error: '+tp+'!');</span><span class="WHIT">
|
||
<span class='line'>3146</span>
|
||
<span class='line'>3147</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">tp</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 回傳決定的type</span><span class="WHIT">
|
||
<span class='line'>3148</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3149</span>
|
||
<span class='line'>3150</span>
|
||
<span class='line'>3151</span> </span><span class="COMM">/* 開啟連結於 target
|
||
<span class='line'>3152</span> ** 最好將openAtInit();設在onload
|
||
<span class='line'>3153</span> JScript solution for attribute 'target' @ XHTML1.1 <a target="tag">之取代策略
|
||
<span class='line'>3154</span> way 1: ,captureE,openAtInit,"openAtInit();",openAt
|
||
<span class='line'>3155</span> onload: + openAtInit() ,captureE,openAtInit,"openAtInit();",openAt
|
||
<span class='line'>3156</span> target="tag" → onclick="return openAt('tag')"
|
||
<span class='line'>3157</span> target="_blank" → onclick="return openAt()"
|
||
<span class='line'>3158</span> target="_self" → onclick="return openAt(1)"
|
||
<span class='line'>3159</span> way 2: ,openAt
|
||
<span class='line'>3160</span> target="_blank" → onclick="return openAt(0,this.href)"
|
||
<span class='line'>3161</span> target="_self" → onclick="return openAt(1,this.href)"
|
||
<span class='line'>3162</span> http://tohoho.wakusei.ne.jp/js/event.htm
|
||
<span class='line'>3163</span>
|
||
<span class='line'>3164</span> TODO:
|
||
<span class='line'>3165</span> http://hi.baidu.com/monyer/blog/item/56f1c88095fc96d79023d931.html
|
||
<span class='line'>3166</span> a{text:expr/*XSS* /ession(target="_blank");}
|
||
<span class='line'>3167</span>
|
||
<span class='line'>3168</span> http://blog.fanstown.net/blogs/jerry/archive/2007/04/04/HTML_8476_rel_5E5C2760E68BE3890230_.aspx
|
||
<span class='line'>3169</span> 原來這樣寫的代碼:
|
||
<span class='line'>3170</span> <a href="document.html" target="_blank"> 打開一個新窗口</a>
|
||
<span class='line'>3171</span> 現在要寫成這樣:
|
||
<span class='line'>3172</span> <a href="document.html" rel="external">打開一個新窗口</a>
|
||
<span class='line'>3173</span> 這是符合strict標準的方法。當然還必須配合一個javascript才有效。
|
||
<span class='line'>3174</span> ** 應該 binding a.onclick 或 a.keypress
|
||
<span class='line'>3175</span> rel是relationship的英文縮寫.rel與rev具有互補的作用,rel指定了向前鏈接的關係,rev指定了反向鏈接的關係.
|
||
<span class='line'>3176</span>
|
||
<span class='line'>3177</span> */</span><span class="WHIT">
|
||
<span class='line'>3178</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">captureE</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3179</span> </span><span class="COMM">// 初始化設定</span><span class="WHIT">
|
||
<span class='line'>3180</span> </span><span class="COMM">//openAtInit[generateCode.dLK]='captureE';</span><span class="WHIT">
|
||
<span class='line'>3181</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">openAtInit</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3182</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">captureE</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">Event</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">||</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">Event</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// for moz</span><span class="WHIT">
|
||
<span class='line'>3183</span> </span><span class="WHIT"> </span><span class="COMM">// http://developer.mozilla.org/en/docs/DOM:element.addEventListener http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-Event</span><span class="WHIT">
|
||
<span class='line'>3184</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">Event.mousedown</span><span class="PUNC">)</span><span class="NAME">window.captureEvents</span><span class="PUNC">(</span><span class="NAME">Event.mousedown</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3185</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">Event.keydown</span><span class="PUNC">)</span><span class="NAME">window.captureEvents</span><span class="PUNC">(</span><span class="NAME">Event.keydown</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3186</span> </span><span class="WHIT"> </span><span class="NAME">window.onmousedown</span><span class="PUNC">=</span><span class="NAME">window.onkeydown</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3187</span> </span><span class="WHIT"> </span><span class="NAME">captureE</span><span class="PUNC">=</span><span class="NAME">e</span><span class="PUNC">;</span><span class="COMM">//alert('openAtInit: '+e.target.tagName);</span><span class="WHIT">
|
||
<span class='line'>3188</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3189</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3190</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="STRN">'a'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">a.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3191</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onclick</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onkeypress</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">+</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onclick</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="STRN">'openAt'</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onkeypress</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onclick</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3192</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3193</span> </span><span class="COMM">// open h(ref) in tag(et)</span><span class="WHIT">
|
||
<span class='line'>3194</span> </span><span class="COMM">//openAt[generateCode.dLK]='captureE,openAtInit';</span><span class="WHIT">
|
||
<span class='line'>3195</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">openAt</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">,</span><span class="NAME">h</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3196</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="NAME">tag</span><span class="PUNC">=</span><span class="STRN">'_blank'</span><span class="PUNC">;</span><span class="COMM">//typeof tag=='undefined'||</span><span class="WHIT">
|
||
<span class='line'>3197</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">===</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="NAME">tag</span><span class="PUNC">=</span><span class="STRN">'_self'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3198</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3199</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">h</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">event</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="NAME">h</span><span class="PUNC">=</span><span class="NAME">event.srcElement.href</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3200</span>
|
||
<span class='line'>3201</span> </span><span class="WHIT"> </span><span class="COMM">// 對Gecko等使用標準(?)Document Object Model的</span><span class="WHIT">
|
||
<span class='line'>3202</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html</span><span class="WHIT">
|
||
<span class='line'>3203</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">h</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">captureE</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">captureE.target</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3204</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">captureE.target</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3205</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">=</span><span class="NAME">t.href</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">t.parentNode</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3206</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3207</span>
|
||
<span class='line'>3208</span> </span><span class="WHIT"> </span><span class="COMM">//alert(h+','+tag+'\n'+captureE.target.parentNode.tagName+":");//+captureE.target.parentElement().tagName</span><span class="WHIT">
|
||
<span class='line'>3209</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="NAME">window.open</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">,</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3210</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3211</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3212</span>
|
||
<span class='line'>3213</span> </span><span class="COMM">/* display mark to valid document
|
||
<span class='line'>3214</span> <div id="valid"> </div>
|
||
<span class='line'>3215</span> window.onload="addValid()";
|
||
<span class='line'>3216</span> 搞定之後把自己網站提交到W3C Sites收錄。 http://www.w3csites.com/
|
||
<span class='line'>3217</span>
|
||
<span class='line'>3218</span> for RSS:
|
||
<span class='line'>3219</span> http://rss.scripting.com/?url=http%3A%2F%2Flyrics.meicho.com.tw%2Fgame%2Frss.xml
|
||
<span class='line'>3220</span> http://feedvalidator.org/check.cgi?url=http%3A%2F%2Flyrics.meicho.com.tw%2Fgame%2Frss.xml
|
||
<span class='line'>3221</span> */</span><span class="WHIT">
|
||
<span class='line'>3222</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">addValid</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">,</span><span class="NAME">tf</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// object to insert valid, target window/frame</span><span class="WHIT">
|
||
<span class='line'>3223</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">location.protocol</span><span class="PUNC">==</span><span class="STRN">'file:'</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3224</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">v</span><span class="PUNC">)</span><span class="NAME">v</span><span class="PUNC">=</span><span class="STRN">'valid'</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="NAME">v</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3225</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">v</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">v.innerHTML.replace</span><span class="PUNC">(</span><span class="REGX">/ /g</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s+/g</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3226</span>
|
||
<span class='line'>3227</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">tf</span><span class="PUNC">===</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">tf</span><span class="PUNC">=</span><span class="STRN">'valid_window'</span><span class="PUNC">;</span><span class="COMM">//tf=dQuote(tf);//tf?' target="'+tf+'"':'';</span><span class="WHIT">
|
||
<span class='line'>3228</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">,</span><span class="NAME">addValidData</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="WHIT">
|
||
<span class='line'>3229</span> </span><span class="WHIT"> </span><span class="STRN">'Valid XHTML 1.1! by W3C http://validator.w3.org/check?uri=referer http://www.w3.org/Icons/valid-xhtml11'</span><span class="WHIT">
|
||
<span class='line'>3230</span> </span><span class="WHIT"> </span><span class="COMM">//,'Valid XML 1.0! by W3C '</span><span class="WHIT">
|
||
<span class='line'>3231</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="STRN">'Valid CSS! by W3C http://jigsaw.w3.org/css-validator/check/referer http://jigsaw.w3.org/css-validator/images/vcss'</span><span class="WHIT"> </span><span class="COMM">// http://jigsaw.w3.org/css-validator/validator?uri=~</span><span class="WHIT">
|
||
<span class='line'>3232</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="STRN">'Validome Validation Services http://www.validome.org/referer http://www.validome.org/images/valid/set2/valid_xhtml_1_1.png'</span><span class="WHIT">
|
||
<span class='line'>3233</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="STRN">'Another HTML-lint check http://openlab.ring.gr.jp/k16/htmllint/htmllint.cgi?ViewSource=o http://openlab.ring.gr.jp/k16/images/ahl-blue.gif'</span><span class="WHIT">
|
||
<span class='line'>3234</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="STRN">'Bobby WAI-AAA Approved by bobby@watchfire.com http://bobby.watchfire.com/bobby/bobbyServlet?URL=~&output=Submit&gl=wcag1-aaa http://bobby.watchfire.com/bobby/html/en/images/approved_aaa.gif'</span><span class="WHIT">
|
||
<span class='line'>3235</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="STRN">'Bobby 508 Approved by bobby@watchfire.com http://bobby.watchfire.com/bobby/bobbyServlet?URL=~&output=Submit&gl=sec508 http://bobby.watchfire.com/bobby/html/en/images/approved_508.gif'</span><span class="WHIT">
|
||
<span class='line'>3236</span> </span><span class="WHIT"> </span><span class="COMM">// http://webxact.watchfire.com/</span><span class="WHIT">
|
||
<span class='line'>3237</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3238</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">addValidData.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3239</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">addValidData</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="NAME">t</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">' <a title="'</span><span class="PUNC">+</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">'" href="'</span><span class="PUNC">+</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/~/g</span><span class="PUNC">,</span><span class="NAME">encodeURI</span><span class="PUNC">(</span><span class="NAME">location.href</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3240</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'" target="'</span><span class="PUNC">+</span><span class="NAME">tf</span><span class="PUNC">+</span><span class="STRN">'">'</span><span class="WHIT">
|
||
<span class='line'>3241</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">?</span><span class="STRN">'<img style="display:inline;width:88px;" alt="'</span><span class="COMM">//'" onclick="return openAt(\''+tf+'\');"><img style="display:inline;" alt="' IE不通</span><span class="WHIT">
|
||
<span class='line'>3242</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">'" src="'</span><span class="PUNC">+</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">'"/>'</span><span class="PUNC">:</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3243</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'<\/a>'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// tf.focus()</span><span class="WHIT">
|
||
<span class='line'>3244</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'Validate data defined error!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3245</span> </span><span class="WHIT"> </span><span class="NAME">v.innerHTML</span><span class="PUNC">=</span><span class="STRN">'Validate this document:<br/>'</span><span class="PUNC">+</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3246</span> </span><span class="WHIT"> </span><span class="NAME">v.style.display</span><span class="PUNC">=</span><span class="STRN">'block'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3247</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3248</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3249</span>
|
||
<span class='line'>3250</span>
|
||
<span class='line'>3251</span> </span><span class="COMM">/* 延遲執行: 加強版的 setTimeout?
|
||
<span class='line'>3252</span>
|
||
<span class='line'>3253</span> id=delayRun(function[,ms=0])
|
||
<span class='line'>3254</span>
|
||
<span class='line'>3255</span> id=delayRun([function,[args],this] [,ms=0])
|
||
<span class='line'>3256</span>
|
||
<span class='line'>3257</span> */</span><span class="WHIT">
|
||
<span class='line'>3258</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">delayRun</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">ms</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3259</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">delayRun</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3260</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_f.fL</span><span class="PUNC">)</span><span class="NAME">_f.fL</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3261</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">_f.fL.length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3262</span> </span><span class="WHIT"> </span><span class="NAME">_f.fL.push</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3263</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'delayRun.run('</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">');'</span><span class="PUNC">,</span><span class="NAME">ms</span><span class="PUNC">||</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3264</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3265</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3266</span> </span><span class="NAME">delayRun.clear</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3267</span> </span><span class="WHIT"> </span><span class="COMM">// clearTimeout(): 為求簡單省略</span><span class="WHIT">
|
||
<span class='line'>3268</span> </span><span class="WHIT"> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">this.fL</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3269</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3270</span> </span><span class="NAME">delayRun.run</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3271</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">_t.fL</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3272</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3273</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="NAME">f</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3274</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">apply</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3275</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">eval</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3276</span> </span><span class="WHIT"> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">_t.fL</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3277</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3278</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3279</span>
|
||
<span class='line'>3280</span>
|
||
<span class='line'>3281</span>
|
||
<span class='line'>3282</span>
|
||
<span class='line'>3283</span>
|
||
<span class='line'>3284</span>
|
||
<span class='line'>3285</span>
|
||
<span class='line'>3286</span> </span><span class="COMM">/* MsgBox, InputBox Titlebars Prefixed with 'VBScript' http://support.microsoft.com/default.aspx?scid=kb;en-us;234742
|
||
<span class='line'>3287</span> http://asp.programmershelp.co.uk/vbscriptmsgbox.php
|
||
<span class='line'>3288</span> http://17.webmasters.com/caspdoc/html/vbscript_msgbox_function.htm
|
||
<span class='line'>3289</span> 請加入下面一段中介function
|
||
<span class='line'>3290</span> <script type="text/vbscript">
|
||
<span class='line'>3291</span> Function VBalert_vbf()
|
||
<span class='line'>3292</span> VBalert_f.ret=MsgBox(VBalert_f.prompt,VBalert_f.buttons,VBalert_f.title,VBalert_f.helpfile,VBalert_f.context)
|
||
<span class='line'>3293</span> End Function
|
||
<span class='line'>3294</span> </script>
|
||
<span class='line'>3295</span>
|
||
<span class='line'>3296</span> or use:
|
||
<span class='line'>3297</span> window.execScript( sExpression, sLanguage );
|
||
<span class='line'>3298</span> */</span><span class="WHIT">
|
||
<span class='line'>3299</span> </span><span class="COMM">//var VBalert_f;VBalert(); // init</span><span class="WHIT">
|
||
<span class='line'>3300</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">VBalert</span><span class="PUNC">(</span><span class="NAME">prompt</span><span class="PUNC">,</span><span class="NAME">buttons</span><span class="PUNC">,</span><span class="NAME">title</span><span class="PUNC">,</span><span class="NAME">helpfile</span><span class="PUNC">,</span><span class="NAME">context</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3301</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">VBalert_f</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="NAME">VBalert_f</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">setObjValue</span><span class="PUNC">(</span><span class="STRN">'VBalert_f'</span><span class="PUNC">,</span><span class="STRN">'ret=0,'</span><span class="WHIT">
|
||
<span class='line'>3302</span> </span><span class="WHIT"> </span><span class="COMM">// http://msdn.microsoft.com/library/en-us/script56/html/vsfctmsgbox.asp</span><span class="WHIT">
|
||
<span class='line'>3303</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'vbOK=1,vbCancel=2,vbAbort=3,vbRetry=4,vbIgnore=5,vbYes=6,vbNo=7,'</span><span class="WHIT">
|
||
<span class='line'>3304</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'vbOKOnly=0,vbOKCancel=1,vbAbortRetryIgnore=2,vbYesNoCancel=3,vbYesNo=4,vbRetryCancel=5,'</span><span class="WHIT">
|
||
<span class='line'>3305</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'vbCritical=16,'</span><span class="WHIT"> </span><span class="COMM">// Critical Message icon (x)</span><span class="WHIT">
|
||
<span class='line'>3306</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'vbQuestion=32,'</span><span class="WHIT"> </span><span class="COMM">// Warning Query icon (?)</span><span class="WHIT">
|
||
<span class='line'>3307</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'vbExclamation=48,'</span><span class="WHIT"> </span><span class="COMM">// Warning Message icon (!)</span><span class="WHIT">
|
||
<span class='line'>3308</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'vbInformation=64,'</span><span class="WHIT"> </span><span class="COMM">// Information Message icon(i)</span><span class="WHIT">
|
||
<span class='line'>3309</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'vbDefaultButton1=0,vbDefaultButton2=256,vbDefaultButton3=512,vbDefaultButton4=768,vbApplicationModal=0,vbSystemModal=4096'</span><span class="PUNC">,</span><span class="STRN">'int'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3310</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">prompt</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3311</span> </span><span class="WHIT"> </span><span class="NAME">VBalert_f.prompt</span><span class="PUNC">=</span><span class="NAME">prompt</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">,</span><span class="NAME">VBalert_f.buttons</span><span class="PUNC">=</span><span class="NAME">buttons</span><span class="PUNC">||</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">VBalert_f.title</span><span class="PUNC">=</span><span class="NAME">title</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3312</span> </span><span class="WHIT"> </span><span class="COMM">// Not available on 16-bit platforms. http://msdn.microsoft.com/library/en-us/script56/html/vsfctmsgbox.asp</span><span class="WHIT">
|
||
<span class='line'>3313</span> </span><span class="WHIT"> </span><span class="NAME">VBalert_f.helpfile</span><span class="PUNC">=</span><span class="NAME">helpfile</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">,</span><span class="NAME">VBalert_f.context</span><span class="PUNC">=</span><span class="NAME">context</span><span class="PUNC">||</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3314</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3315</span> </span><span class="WHIT"> </span><span class="NAME">VBScript</span><span class="PUNC">:</span><span class="NAME">VBalert_vbf</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3316</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">VBalert_f.ret</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3317</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3318</span> </span><span class="WHIT"> </span><span class="COMM">//alert('VBalert error:'+e.message);</span><span class="WHIT">
|
||
<span class='line'>3319</span> </span><span class="WHIT"> </span><span class="NAME">alert</span><span class="PUNC">(</span><span class="NAME">VBalert_f.prompt</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3320</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3321</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3322</span> </span><span class="COMM">//alert(VBalert('12',VBalert_f.vbInformation+VBalert_f.vbDefaultButton3));</span><span class="WHIT">
|
||
<span class='line'>3323</span>
|
||
<span class='line'>3324</span>
|
||
<span class='line'>3325</span>
|
||
<span class='line'>3326</span> </span><span class="COMM">/* get window status 取得視窗可利用的size。現在還得用種方法,真是羞恥。 2005/1/13 20:0
|
||
<span class='line'>3327</span> get_window_status(event object)
|
||
<span class='line'>3328</span> http://www.mozilla.org/docs/dom/domref/dom_window_ref.html
|
||
<span class='line'>3329</span> http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/body.asp
|
||
<span class='line'>3330</span> http://www.howtocreate.co.uk/tutorials/index.php?tut=0&part=16
|
||
<span class='line'>3331</span> http://www.webdevtips.com/webdevtips/faq/javascript/index.shtml
|
||
<span class='line'>3332</span> http://www.quirksmode.org/viewport/compatibility.html
|
||
<span class='line'>3333</span> http://cgi.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/eventhandle.htm
|
||
<span class='line'>3334</span>
|
||
<span class='line'>3335</span> ** untested !!
|
||
<span class='line'>3336</span>
|
||
<span class='line'>3337</span> */</span><span class="WHIT">
|
||
<span class='line'>3338</span>
|
||
<span class='line'>3339</span> </span><span class="COMM">//var eventObj;</span><span class="WHIT">
|
||
<span class='line'>3340</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>3341</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>3342</span> </span><span class="COMM">/**
|
||
<span class='line'>3343</span> * 取得當前 window status
|
||
<span class='line'>3344</span> * @param node HTML element or Event object
|
||
<span class='line'>3345</span> * @returns {Object} status
|
||
<span class='line'>3346</span> */</span><span class="WHIT">
|
||
<span class='line'>3347</span> </span><span class="NAME">get_window_status</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3348</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">get_window_status</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.scroll</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3349</span> </span><span class="WHIT"> </span><span class="NAME">scrollLeft</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3350</span> </span><span class="WHIT"> </span><span class="NAME">scrollTop</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT">
|
||
<span class='line'>3351</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3352</span>
|
||
<span class='line'>3353</span> </span><span class="WHIT"> </span><span class="COMM">// 能scroll的範圍:不準,yet test The height of the total page (usually the body element)</span><span class="WHIT">
|
||
<span class='line'>3354</span> </span><span class="WHIT"> </span><span class="COMM">// t:test, true:all but Explorer Mac, false:Explorer Mac, would also work in Explorer 6 Strict, Mozilla and Safari</span><span class="WHIT">
|
||
<span class='line'>3355</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.body.scrollHeight</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT">
|
||
<span class='line'>3356</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.body.offsetHeight</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT">
|
||
<span class='line'>3357</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">document.body.scrollHeight</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">document.body.offsetHeight</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3358</span>
|
||
<span class='line'>3359</span> </span><span class="WHIT"> </span><span class="NAME">r.scrollW</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.body.scrollWidth</span><span class="WHIT">
|
||
<span class='line'>3360</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.body.offsetWidth</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.body.offsetWidth</span><span class="WHIT">
|
||
<span class='line'>3361</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3362</span> </span><span class="WHIT"> </span><span class="NAME">r.scrollH</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.body.scrollHeight</span><span class="WHIT">
|
||
<span class='line'>3363</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.body.offsetHeight</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.body.offsetHeight</span><span class="WHIT">
|
||
<span class='line'>3364</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3365</span>
|
||
<span class='line'>3366</span> </span><span class="WHIT"> </span><span class="COMM">// window大小</span><span class="WHIT">
|
||
<span class='line'>3367</span> </span><span class="WHIT"> </span><span class="COMM">// 2009/3/23 1:15:29</span><span class="WHIT">
|
||
<span class='line'>3368</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">NewIE</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">navigator.appVersion.indexOf</span><span class="PUNC">(</span><span class="STRN">"MSIE"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT">
|
||
<span class='line'>3369</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">navigator.appVersion.split</span><span class="PUNC">(</span><span class="STRN">"MSIE"</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">6</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3370</span> </span><span class="WHIT"> </span><span class="NAME">r.windowW</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window.innerWidth</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">window.innerWidth</span><span class="WHIT">
|
||
<span class='line'>3371</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="COMM">/* typeof offsetWidth!='undefined'?offsetWidth: */</span><span class="PUNC">!</span><span class="NAME">NewIE</span><span class="WHIT">
|
||
<span class='line'>3372</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.body.clientWidth</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.body.clientWidth</span><span class="WHIT">
|
||
<span class='line'>3373</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document.documentElement</span><span class="WHIT">
|
||
<span class='line'>3374</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">document.documentElement.clientWidth</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.documentElement.clientWidth</span><span class="WHIT">
|
||
<span class='line'>3375</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="COMM">// +offsetLeft</span><span class="WHIT">
|
||
<span class='line'>3376</span> </span><span class="WHIT"> </span><span class="NAME">r.windowH</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window.innerHeight</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">window.innerHeight</span><span class="WHIT">
|
||
<span class='line'>3377</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="COMM">/* typeof offsetHeight!='undefined'?offsetHeight: */</span><span class="PUNC">!</span><span class="NAME">NewIE</span><span class="WHIT">
|
||
<span class='line'>3378</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">document.body.clientHeight</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.body.clientHeight</span><span class="WHIT">
|
||
<span class='line'>3379</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document.documentElement</span><span class="WHIT">
|
||
<span class='line'>3380</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">document.documentElement.clientHeight</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document.documentElement.clientHeight</span><span class="WHIT">
|
||
<span class='line'>3381</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="COMM">// +offsetTop</span><span class="WHIT">
|
||
<span class='line'>3382</span>
|
||
<span class='line'>3383</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">noEmu</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3384</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3385</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3386</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3387</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3388</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3389</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">eventObj</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3390</span> </span><span class="WHIT"> </span><span class="NAME">noEmu</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">eventObj</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3391</span>
|
||
<span class='line'>3392</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3393</span> </span><span class="WHIT"> </span><span class="COMM">// Safari: yet test</span><span class="WHIT">
|
||
<span class='line'>3394</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">isSafari</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/Safari/i</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">window.navigator.appName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3395</span>
|
||
<span class='line'>3396</span> </span><span class="WHIT"> </span><span class="COMM">// window相對於screen位置:不準, yet test</span><span class="WHIT">
|
||
<span class='line'>3397</span> </span><span class="WHIT"> </span><span class="NAME">r.windowX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.clientX</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">isSafari</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">r.scrollX</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3398</span> </span><span class="WHIT"> </span><span class="NAME">r.windowY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.clientY</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">isSafari</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">r.scrollY</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3399</span> </span><span class="WHIT"> </span><span class="COMM">// mouse位置</span><span class="WHIT">
|
||
<span class='line'>3400</span> </span><span class="WHIT"> </span><span class="COMM">// http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_event.asp</span><span class="WHIT">
|
||
<span class='line'>3401</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.mozilla.org/docs/dom/domref/dom_event_ref.html</span><span class="WHIT">
|
||
<span class='line'>3402</span> </span><span class="WHIT"> </span><span class="NAME">r.mouseX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.clientX</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isSafari</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">r.scrollX</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3403</span> </span><span class="WHIT"> </span><span class="NAME">r.mouseY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.clientY</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isSafari</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">r.scrollY</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3404</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">noEmu</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3405</span> </span><span class="WHIT"> </span><span class="COMM">// 模擬event obj,因為event obj不能在event發生時之function執行完後再取得</span><span class="WHIT">
|
||
<span class='line'>3406</span> </span><span class="WHIT"> </span><span class="NAME">eventObj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3407</span> </span><span class="WHIT"> </span><span class="STRN">'clientX'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">node.clientX</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3408</span> </span><span class="WHIT"> </span><span class="STRN">'clientY'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">node.clientY</span><span class="WHIT">
|
||
<span class='line'>3409</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3410</span> </span><span class="WHIT"> </span><span class="COMM">// alert(r.scrollX+','+r.scrollY+'\n'+o.clientX+','+o.clientY);</span><span class="WHIT">
|
||
<span class='line'>3411</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3412</span>
|
||
<span class='line'>3413</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3414</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3415</span>
|
||
<span class='line'>3416</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>3417</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>3418</span> </span><span class="COMM">// IE7遵照標準,不用 document.body.scrollLeft 而用 document.documentElement.scrollLeft</span><span class="WHIT">
|
||
<span class='line'>3419</span> </span><span class="COMM">// http://hkom.blog1.fc2.com/blog-entry-423.html</span><span class="WHIT">
|
||
<span class='line'>3420</span> </span><span class="COMM">// http://diaspar.jp/node/47</span><span class="WHIT">
|
||
<span class='line'>3421</span> </span><span class="NAME">get_window_status.scroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3422</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">box_model</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">od</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">node.ownerDocument</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3423</span>
|
||
<span class='line'>3424</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3425</span> </span><span class="WHIT"> </span><span class="COMM">// from jQuery</span><span class="WHIT">
|
||
<span class='line'>3426</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">div</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3427</span> </span><span class="WHIT"> </span><span class="NAME">div.style.width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">div.style.paddingLeft</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'1px'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3428</span> </span><span class="WHIT"> </span><span class="WHIT">
|
||
<span class='line'>3429</span> </span><span class="WHIT"> </span><span class="NAME">document.body.appendChild</span><span class="PUNC">(</span><span class="NAME">div</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3430</span> </span><span class="WHIT"> </span><span class="NAME">_.get_window_status.box_model</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">box_model</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">div.offsetWidth</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3431</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3432</span> </span><span class="WHIT"> </span><span class="NAME">od</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">div.ownerDocument</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3433</span> </span><span class="WHIT"> </span><span class="NAME">document.body.removeChild</span><span class="PUNC">(</span><span class="NAME">div</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3434</span> </span><span class="WHIT"> </span><span class="WHIT">
|
||
<span class='line'>3435</span> </span><span class="WHIT"> </span><span class="NAME">div</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3436</span>
|
||
<span class='line'>3437</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3438</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: handle exception</span><span class="WHIT">
|
||
<span class='line'>3439</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3440</span>
|
||
<span class='line'>3441</span> </span><span class="WHIT"> </span><span class="COMM">// 到這邊,若是 od 未設定,則所有取值與 node 無關。</span><span class="WHIT">
|
||
<span class='line'>3442</span> </span><span class="WHIT"> </span><span class="COMM">// 因為大多有 ownerDocument,所以預設編入。</span><span class="WHIT">
|
||
<span class='line'>3443</span> </span><span class="WHIT"> </span><span class="COMM">// 新的 browser,od 與 dv 皆應有設定。</span><span class="WHIT">
|
||
<span class='line'>3444</span>
|
||
<span class='line'>3445</span> </span><span class="COMM">/*
|
||
<span class='line'>3446</span>
|
||
<span class='line'>3447</span> Firefox/3.6.6: ownerDocument: [object HTMLDocument], defaultView: [object Window], box_model: true, pageXOffset: 0, body.scrollLeft: 0, documentElement.scrollLeft: 0, scrollX: 0
|
||
<span class='line'>3448</span> Chrome/6.0.453.1 Safari/534.2: ownerDocument: [object HTMLDocument], defaultView: [object DOMWindow], box_model: true, pageXOffset: 0, body.scrollLeft: 0, documentElement.scrollLeft: 0, scrollX: 0
|
||
<span class='line'>3449</span> Safari/533.16: ownerDocument: [object HTMLDocument], defaultView: [object DOMWindow], box_model: true, pageXOffset: 0, body.scrollLeft: 0, documentElement.scrollLeft: 0, scrollX: 0
|
||
<span class='line'>3450</span> Opera/9.80 Presto/2.6.30: ownerDocument: [object HTMLDocument], defaultView: [object Window], box_model: true, pageXOffset: 0, body.scrollLeft: 0, documentElement.scrollLeft: 0, scrollX: 0
|
||
<span class='line'>3451</span>
|
||
<span class='line'>3452</span>
|
||
<span class='line'>3453</span> MSIE 5.0 @ MSIE 9.0 test: ownerDocument: [object], defaultView: undefined, box_model: false, pageXOffset: undefined, body.scrollLeft: 0, documentElement.scrollLeft: 0, scrollX: undefined
|
||
<span class='line'>3454</span> MSIE 7.0 @ MSIE 9.0 test: ownerDocument: [object], defaultView: undefined, box_model: true, pageXOffset: undefined, body.scrollLeft: 0, documentElement.scrollLeft: 0, scrollX: undefined
|
||
<span class='line'>3455</span>
|
||
<span class='line'>3456</span> MSIE 8.0: ownerDocument: [object HTMLDocument], defaultView: undefined, box_model: true, pageXOffset: undefined, body.scrollLeft: 0, documentElement.scrollLeft: 0, scrollX: undefined
|
||
<span class='line'>3457</span> MSIE 9.0 test: ownerDocument: [object HTMLDocument], defaultView: [object Window], box_model: true, pageXOffset: 0, body.scrollLeft: 0, documentElement.scrollLeft: 0, scrollX: undefined
|
||
<span class='line'>3458</span>
|
||
<span class='line'>3459</span> */</span><span class="WHIT">
|
||
<span class='line'>3460</span> </span><span class="WHIT"> </span><span class="COMM">// IE5-8: od: true, dv: false</span><span class="WHIT">
|
||
<span class='line'>3461</span>
|
||
<span class='line'>3462</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">doc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">od</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window.document</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3463</span> </span><span class="WHIT"> </span><span class="NAME">body</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">doc.body</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dv</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">doc.defaultView</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">win</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">dv</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">doc.parentWindow</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3464</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.debug</span><span class="PUNC">(</span><span class="STRN">'ownerDocument: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">od</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', defaultView: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dv</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', box_model: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">box_model</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', pageXOffset: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.pageXOffset</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', body.scrollLeft: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">body.scrollLeft</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', documentElement.scrollLeft: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">doc.documentElement.scrollLeft</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', scrollX: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'get_window_status.scroll'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3465</span>
|
||
<span class='line'>3466</span> </span><span class="WHIT"> </span><span class="COMM">// ** 順序有關係! 但在未設置 box_model 前,body.scrollLeft 排在 documentElement.scrollLeft 前面。現在已按照 jQuery 改過。</span><span class="WHIT">
|
||
<span class='line'>3467</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: do test</span><span class="WHIT">
|
||
<span class='line'>3468</span> </span><span class="WHIT"> </span><span class="COMM">// [scrollLeft, scrollTop, clientLeft, clientTop]</span><span class="WHIT">
|
||
<span class='line'>3469</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_.get_window_status.scroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
|
||
<span class='line'>3470</span> </span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">win.pageXOffset</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
|
||
<span class='line'>3471</span> </span><span class="WHIT"> </span><span class="COMM">// 預設 box_model === true</span><span class="WHIT">
|
||
<span class='line'>3472</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3473</span> </span><span class="WHIT"> </span><span class="COMM">// '|| window.document': for Range (see get_selection())</span><span class="WHIT">
|
||
<span class='line'>3474</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">n.ownerDocument</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window.document</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3475</span> </span><span class="WHIT"> </span><span class="NAME">w</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d.defaultView</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3476</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d.documentElement</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3477</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">w.pageXOffset</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w.pageYOffset</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d.clientLeft</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d.clientTop</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3478</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
|
||
<span class='line'>3479</span>
|
||
<span class='line'>3480</span> </span><span class="WHIT"> </span><span class="COMM">// IE7(6?)~8</span><span class="WHIT">
|
||
<span class='line'>3481</span> </span><span class="WHIT"> </span><span class="NAME">box_model</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">doc.documentElement.scrollLeft</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
|
||
<span class='line'>3482</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3483</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">n.ownerDocument</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window.document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">documentElement</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3484</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">d.scrollLeft</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d.scrollTop</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d.clientLeft</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d.clientTop</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3485</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
|
||
<span class='line'>3486</span>
|
||
<span class='line'>3487</span> </span><span class="WHIT"> </span><span class="COMM">// IE5(6?)</span><span class="WHIT">
|
||
<span class='line'>3488</span> </span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">body.scrollLeft</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
|
||
<span class='line'>3489</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3490</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">n.ownerDocument</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window.document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">body</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3491</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">b.scrollLeft</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b.scrollTop</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b.clientLeft</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b.clientTop</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3492</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
|
||
<span class='line'>3493</span>
|
||
<span class='line'>3494</span> </span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">win.scrollX</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
|
||
<span class='line'>3495</span> </span><span class="WHIT"> </span><span class="COMM">// untested</span><span class="WHIT">
|
||
<span class='line'>3496</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3497</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.body</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3498</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">window.scrollX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">window.scrollY</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b.clientLeft</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b.clientTop</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3499</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
|
||
<span class='line'>3500</span>
|
||
<span class='line'>3501</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3502</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3503</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3504</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3505</span>
|
||
<span class='line'>3506</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3507</span>
|
||
<span class='line'>3508</span>
|
||
<span class='line'>3509</span>
|
||
<span class='line'>3510</span>
|
||
<span class='line'>3511</span>
|
||
<span class='line'>3512</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>3513</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>3514</span> </span><span class="COMM">/**
|
||
<span class='line'>3515</span> * get current computed style property of specified HTML element.
|
||
<span class='line'>3516</span> * TODO: 整合 get_node_offset, _.set_style
|
||
<span class='line'>3517</span> * @param element HTML element
|
||
<span class='line'>3518</span> * @param name W3C style property name (e.g., no '-webkit-background-clip')
|
||
<span class='line'>3519</span> * @return
|
||
<span class='line'>3520</span> * @see
|
||
<span class='line'>3521</span> * http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug, http://www.comsharp.com/GetKnowledge/zh-CN/TeamBlogTimothyPage_K983.aspx,
|
||
<span class='line'>3522</span> * curCSS @ jQuery, http://api.jquery.com/category/css/,
|
||
<span class='line'>3523</span> * <a href="http://www.quirksmode.org/dom/getstyles.html" accessdate="2010/4/1 15:44">JavaScript - Get Styles</a>,
|
||
<span class='line'>3524</span> * <a href="http://www.javaeye.com/topic/140784?page=2" accessdate="2010/4/1 15:41">style.display取值不对,难道是浏览器bug?讨论第2页: - JavaScript - web - JavaEye论坛</a>
|
||
<span class='line'>3525</span> * 大體上,currentStyle 相當於 getComputedStyle,而 runtimeStyle 相當於 getOverrideStyle。但是它們還是有很重要的區別。那就是,IE的CSS計算步驟其實是不合標準的。
|
||
<span class='line'>3526</span> * document.defaultView在mozilla中是指向window obj的,但是很有可能在其他broswer中就不指向window obj...因為w3c中沒有強行規定document.defaultView一定是一個global obj.
|
||
<span class='line'>3527</span> *
|
||
<span class='line'>3528</span> * 返回頁內樣式表定義的類,那麼可以使用DOM樣式表對象來訪問:
|
||
<span class='line'>3529</span> * var oCssRulers = document.styleSheets[0].cssRulers || document.styleSheets[0].rulers;
|
||
<span class='line'>3530</span> * (前者是DOM方法,後者是IE私有方法)
|
||
<span class='line'>3531</span> * alert(oCssRulers[0].style.display);
|
||
<span class='line'>3532</span> * @since 2010/4/2 00:14:09 rewrite
|
||
<span class='line'>3533</span> * @memberOf CeL.net.web
|
||
<span class='line'>3534</span> */</span><span class="WHIT">
|
||
<span class='line'>3535</span> </span><span class="NAME">get_style</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">not_computed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3536</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3537</span> </span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3538</span>
|
||
<span class='line'>3539</span> </span><span class="WHIT"> </span><span class="COMM">// opacity</span><span class="WHIT">
|
||
<span class='line'>3540</span>
|
||
<span class='line'>3541</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">name</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3542</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3543</span>
|
||
<span class='line'>3544</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">style_interface</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3545</span> </span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3546</span> </span><span class="WHIT"> </span><span class="COMM">// IE: element.style.styleFloat, firefox, chorme, safari: element.style.cssFloat</span><span class="WHIT">
|
||
<span class='line'>3547</span> </span><span class="WHIT"> </span><span class="COMM">//if (name === 'float') name = 'cssFloat' in element.style ? 'cssFloat' : 'styleFloat';</span><span class="WHIT">
|
||
<span class='line'>3548</span>
|
||
<span class='line'>3549</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">style_interface</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.defaultView</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// window.getComputedStyle</span><span class="WHIT">
|
||
<span class='line'>3550</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3551</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element.ownerDocument</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value.defaultView</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3552</span> </span><span class="WHIT"> </span><span class="NAME">style_interface</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3553</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>3554</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.debug</span><span class="PUNC">(</span><span class="STRN">'Can not get .ownerDocument.defaultView of '</span><span class="WHIT">
|
||
<span class='line'>3555</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">library_namespace.node_description</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' !'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3556</span>
|
||
<span class='line'>3557</span> </span><span class="WHIT"> </span><span class="COMM">//if (/[A-Z]/.test(name)) name = name.replace(/([A-Z])/g, '-$1').toLowerCase();</span><span class="WHIT">
|
||
<span class='line'>3558</span> </span><span class="WHIT"> </span><span class="COMM">// width 之類可能 === "auto"!!</span><span class="WHIT">
|
||
<span class='line'>3559</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">style_interface.getComputedStyle</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3560</span> </span><span class="WHIT"> </span><span class="COMM">// [name]</span><span class="WHIT">
|
||
<span class='line'>3561</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">getPropertyValue</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3562</span>
|
||
<span class='line'>3563</span> </span><span class="WHIT"> </span><span class="COMM">// from curCSS @ jQuery: return a number for opacity</span><span class="WHIT">
|
||
<span class='line'>3564</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'opacity'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3565</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3566</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3567</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.err</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3568</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3569</span>
|
||
<span class='line'>3570</span> </span><span class="WHIT"> </span><span class="COMM">// IE 5-8</span><span class="WHIT">
|
||
<span class='line'>3571</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">style_interface</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element.currentStyle</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3572</span> </span><span class="WHIT"> </span><span class="COMM">// IE: \w+\W\w+ (e.g., margin-bottom), firefox, chorme, safari: \w+-\w+</span><span class="WHIT">
|
||
<span class='line'>3573</span> </span><span class="WHIT"> </span><span class="COMM">// IE8 中 width 之類可能 === "auto"!!</span><span class="WHIT">
|
||
<span class='line'>3574</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">style_interface</span><span class="PUNC">[</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'float'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'styleFloat'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">name.replace</span><span class="PUNC">(</span><span class="REGX">/-([a-z])/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">$1.toUpperCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3575</span> </span><span class="WHIT"> </span><span class="COMM">// Dean Edwards(Base2類庫的作者)的hack http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291</span><span class="WHIT">
|
||
<span class='line'>3576</span>
|
||
<span class='line'>3577</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">style_interface</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element.style</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">style_interface</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3578</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">style_interface</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3579</span>
|
||
<span class='line'>3580</span> </span><span class="WHIT"> </span><span class="COMM">// we should directly get it from element itself</span><span class="WHIT">
|
||
<span class='line'>3581</span> </span><span class="WHIT"> </span><span class="COMM">//else if (!(value = element['offset' + name.charAt(0).toUpperCase() + name.slice(1).toLowerCase()])) value = '';</span><span class="WHIT">
|
||
<span class='line'>3582</span>
|
||
<span class='line'>3583</span> </span><span class="WHIT"> </span><span class="COMM">// 處理 px, pt, em, ..</span><span class="WHIT">
|
||
<span class='line'>3584</span>
|
||
<span class='line'>3585</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug(library_namespace.node_description(element) + '.style[' + name + '] = [' + value + ']' +(style_interface === document.defaultView ? ' (use W3C .getComputedStyle)' : style_interface === element.currentStyle ? ' (use IE .currentStyle)' : ''));</span><span class="WHIT">
|
||
<span class='line'>3586</span>
|
||
<span class='line'>3587</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3588</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3589</span>
|
||
<span class='line'>3590</span>
|
||
<span class='line'>3591</span>
|
||
<span class='line'>3592</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>3593</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>3594</span> </span><span class="COMM">/**
|
||
<span class='line'>3595</span> * get the actual position [left,top,width,height] of an HTML node object
|
||
<span class='line'>3596</span> * @param node HTML node object
|
||
<span class='line'>3597</span> * @return
|
||
<span class='line'>3598</span> * @memberOf CeL.net.web
|
||
<span class='line'>3599</span> * @deprecated use get_style(), jQuery.offset(), jQuery.position()
|
||
<span class='line'>3600</span> * @see
|
||
<span class='line'>3601</span> * http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug, http://www.comsharp.com/GetKnowledge/zh-CN/TeamBlogTimothyPage_K983.aspx,
|
||
<span class='line'>3602</span> * http://msdn.microsoft.com/library/en-us/dndude/html/dude04032000.asp,
|
||
<span class='line'>3603</span> * http://www.mail-archive.com/mochikit@googlegroups.com/msg00584.html,
|
||
<span class='line'>3604</span> * http://hartshorne.ca/2006/01/20/javascript_positioning/,
|
||
<span class='line'>3605</span> * http://www.jb51.net/article/18340.htm,
|
||
<span class='line'>3606</span> * http://blog.csdn.net/wangjj_016/archive/2010/04/09/5467507.aspx
|
||
<span class='line'>3607</span> */</span><span class="WHIT">
|
||
<span class='line'>3608</span> </span><span class="NAME">get_node_offset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3609</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3610</span> </span><span class="WHIT"> </span><span class="COMM">// 若 node 為 id</span><span class="WHIT">
|
||
<span class='line'>3611</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.get_element</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3612</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_.is_element_node</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3613</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3614</span>
|
||
<span class='line'>3615</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.get_node_offset</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3616</span> </span><span class="WHIT"> </span><span class="NAME">offset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'offsetWidth'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3617</span> </span><span class="WHIT"> </span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">node.offsetWidth</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3618</span> </span><span class="WHIT"> </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">node.offsetHeight</span><span class="WHIT">
|
||
<span class='line'>3619</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3620</span>
|
||
<span class='line'>3621</span>
|
||
<span class='line'>3622</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">node.getBoundingClientRect</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3623</span>
|
||
<span class='line'>3624</span> </span><span class="WHIT"> </span><span class="COMM">// also see: getClientRects()</span><span class="WHIT">
|
||
<span class='line'>3625</span>
|
||
<span class='line'>3626</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.get_window_status.scroll</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3627</span> </span><span class="WHIT"> </span><span class="NAME">box</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.getBoundingClientRect</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3628</span>
|
||
<span class='line'>3629</span> </span><span class="WHIT"> </span><span class="NAME">offset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3630</span> </span><span class="WHIT"> </span><span class="NAME">left</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">box.left</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3631</span> </span><span class="WHIT"> </span><span class="NAME">top</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">box.top</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3632</span> </span><span class="WHIT"> </span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">box.right</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">box.left</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3633</span> </span><span class="WHIT"> </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">box.bottom</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">box.top</span><span class="WHIT">
|
||
<span class='line'>3634</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3635</span>
|
||
<span class='line'>3636</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_.is_HTML_element</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3637</span> </span><span class="WHIT"> </span><span class="COMM">//alert(node.id+':'+node.offsetLeft+','+node.offsetTop+';'+node.offsetWidth+','+node.offsetHeight);</span><span class="WHIT">
|
||
<span class='line'>3638</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3639</span> </span><span class="WHIT"> </span><span class="COMM">// n,countH=window.navigator.userAgent.indexOf("MSIE")>=0,add=1,outsideBLOCK=1,</span><span class="WHIT">
|
||
<span class='line'>3640</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3641</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">node.offsetWidth</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3642</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_w</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.offsetWidth</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_h</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.offsetHeight</span><span class="WHIT">
|
||
<span class='line'>3643</span> </span><span class="WHIT"> </span><span class="COMM">// ,_o=window.getComputedStyle?document.defaultView.getComputedStyle(node,null):null</span><span class="WHIT">
|
||
<span class='line'>3644</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3645</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.quirksmode.org/dom/getstyles.html</span><span class="WHIT">
|
||
<span class='line'>3646</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>3647</span> if(_o) // moz未包含margin+border+padding 這些值可能會有'em'等等的出現,不一定都是px!
|
||
<span class='line'>3648</span> //alert(_o.getPropertyValue('border-left-width')+','+_o.getPropertyValue('border-right-width')),
|
||
<span class='line'>3649</span> _w+=parseInt(_o.getPropertyValue('border-left-width'))+parseInt(_o.getPropertyValue('border-right-width')),
|
||
<span class='line'>3650</span> _h+=parseInt(_o.getPropertyValue('border-top-width'))+parseInt(_o.getPropertyValue('border-bottom-width'));
|
||
<span class='line'>3651</span> else if(_o=node.currentStyle) // IE
|
||
<span class='line'>3652</span> // IE的offset已經包含margin+border+padding的部份??另,這些值可能會有'em'等等的出現,不一定都是px。
|
||
<span class='line'>3653</span> _w+=parseInt(_o['borderLeftWidth'])+parseInt(_o['borderRightWidth']),
|
||
<span class='line'>3654</span> _h+=parseInt(_o['borderTopWidth'])+parseInt(_o['borderBottomWidt都是px;
|
||
<span class='line'>3655</span> */</span><span class="WHIT">
|
||
<span class='line'>3656</span> </span><span class="WHIT"> </span><span class="NAME">r.width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_w</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3657</span> </span><span class="WHIT"> </span><span class="NAME">r.height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_h</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3658</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3659</span>
|
||
<span class='line'>3660</span> </span><span class="WHIT"> </span><span class="COMM">// 下面這段依瀏覽器而有不同 (-_-)!!</span><span class="WHIT">
|
||
<span class='line'>3661</span> </span><span class="WHIT"> </span><span class="COMM">// position:absolute</span><span class="WHIT">
|
||
<span class='line'>3662</span> </span><span class="WHIT"> </span><span class="COMM">//var tt=''; // for debug</span><span class="WHIT">
|
||
<span class='line'>3663</span> </span><span class="WHIT"> </span><span class="COMM">// 2006/2/14: 經由 offset 一個個溯源</span><span class="WHIT">
|
||
<span class='line'>3664</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3665</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">_o</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">_o.offsetLeft</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// IE在用style:class時會出現誤差。</span><span class="WHIT">
|
||
<span class='line'>3666</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>3667</span> n=_o.tagName;
|
||
<span class='line'>3668</span> //if( !/^T(ABLE|BODY|R)$/.test(n=_o.tagName) && (countH||!/^H\d$/.test(n)) )l+=_o.offsetLeft,t+=_o.offsetTop;
|
||
<span class='line'>3669</span> if(n=='DIV')add=outsideBLOCK;
|
||
<span class='line'>3670</span> else if(n=='TD' || countH&&/^H\d$/.test(n))add=1;
|
||
<span class='line'>3671</span> outsideBLOCK= n=='TABLE'||n=='DIV'; // _o.style.display
|
||
<span class='line'>3672</span> tt+=(add?'':'#')+n+(_o.style.display?'('+_o.style.display+')':'')+':'+_o.offsetLeft+','+_o.offsetTop+(outsideBLOCK?', outside BLOCK':'')+'\n';
|
||
<span class='line'>3673</span> if(add)add=0,l+=_o.offsetLeft,t+=_o.offsetTop;
|
||
<span class='line'>3674</span> */</span><span class="WHIT">
|
||
<span class='line'>3675</span>
|
||
<span class='line'>3676</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_o.offsetLeft</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_o.offsetTop</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3677</span> </span><span class="WHIT"> </span><span class="NAME">_o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_o.offsetParent</span><span class="PUNC">;</span><span class="COMM">//.parentNode</span><span class="WHIT">
|
||
<span class='line'>3678</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3679</span>
|
||
<span class='line'>3680</span> </span><span class="WHIT"> </span><span class="COMM">// 有些會用到overflow,影響位置。 2008/5/31 0:10:7</span><span class="WHIT">
|
||
<span class='line'>3681</span> </span><span class="WHIT"> </span><span class="NAME">_o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3682</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">_o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_o.parentNode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">_o.tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'body'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3683</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_o.scrollLeft</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_o.scrollTop</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3684</span>
|
||
<span class='line'>3685</span> </span><span class="WHIT"> </span><span class="COMM">// need to enable definition of tt above</span><span class="WHIT">
|
||
<span class='line'>3686</span> </span><span class="WHIT"> </span><span class="COMM">//alert('l '+l+',t '+t+',w '+r.w+',h '+r.h+(typeof tt=='string'?'\n'+tt:''));</span><span class="WHIT">
|
||
<span class='line'>3687</span>
|
||
<span class='line'>3688</span> </span><span class="WHIT"> </span><span class="NAME">offset.left</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3689</span> </span><span class="WHIT"> </span><span class="NAME">offset.top</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3690</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3691</span>
|
||
<span class='line'>3692</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">offset</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3693</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3694</span>
|
||
<span class='line'>3695</span>
|
||
<span class='line'>3696</span> </span><span class="COMM">/*
|
||
<span class='line'>3697</span> // get the [left,top,width,height] of obj
|
||
<span class='line'>3698</span> function get_node_offset2(obj){
|
||
<span class='line'>3699</span> if(typeof obj=='string'){var o=document.getElementById(obj);if(o)obj=o;} // 若loc為id
|
||
<span class='line'>3700</span> if(typeof obj=='object'&&typeof obj.offsetLeft!='undefined'){ // 若obj為Document Object
|
||
<span class='line'>3701</span> //alert(obj.id+':'+obj.offsetLeft+','+obj.offsetTop+';'+obj.offsetWidth+','+obj.offsetHeight);
|
||
<span class='line'>3702</span> var l=obj.offsetLeft,t=obj.offsetTop,n,add,outsideBLOCK,countH=window.navigator.userAgent.indexOf("MSIE")>=0,r=[];
|
||
<span class='line'>3703</span> if(typeof obj.offsetWidth!='undefined')r[2]=r.width=r.w=r.W=obj.offsetWidth,r[3]=r.height=r.h=r.H=obj.offsetHeight;
|
||
<span class='line'>3704</span>
|
||
<span class='line'>3705</span> // 下面這段依瀏覽器而有不同 (-_-)!!
|
||
<span class='line'>3706</span> // position:absolute
|
||
<span class='line'>3707</span> //var tt=obj.tagName+':'+obj.offsetLeft+','+obj.offsetTop+'\n'; // for debug
|
||
<span class='line'>3708</span> while(isNaN((obj=obj.parentNode).offsetLeft)){ // IE在用style:class時會出現誤差。
|
||
<span class='line'>3709</span> n=obj.tagName;
|
||
<span class='line'>3710</span> //if( !/^T(ABLE|BODY|R)$/.test(n=obj.tagName) && (countH||!/^H\d$/.test(n)) )l+=obj.offsetLeft,t+=obj.offsetTop;
|
||
<span class='line'>3711</span> if(n=='DIV')add=outsideBLOCK;
|
||
<span class='line'>3712</span> else if(n=='TD' || countH&&/^H\d$/.test(n))add=1;
|
||
<span class='line'>3713</span> outsideBLOCK= n=='TABLE'||n=='DIV'; // obj.style.display
|
||
<span class='line'>3714</span> //tt+=(add?'':'#')+n+(obj.style.display?'('+obj.style.display+')':'')+':'+obj.offsetLeft+','+obj.offsetTop+(outsideBLOCK?', outside BLOCK':'')+'\n';
|
||
<span class='line'>3715</span> if(add)add=0,l+=obj.offsetLeft,t+=obj.offsetTop;
|
||
<span class='line'>3716</span> }
|
||
<span class='line'>3717</span> //alert('l'+l+',t'+t+',w'+w+',h'+h+'\n'+tt); // need to enable definition of tt above
|
||
<span class='line'>3718</span> r[0]=r.left=r.l=r.L=l,r[1]=r.top=r.t=r.T=t;
|
||
<span class='line'>3719</span> return r;
|
||
<span class='line'>3720</span> }
|
||
<span class='line'>3721</span> }
|
||
<span class='line'>3722</span> */</span><span class="WHIT">
|
||
<span class='line'>3723</span>
|
||
<span class='line'>3724</span> </span><span class="COMM">/* locate a object(obj/div, dialogue box, popup dialog) on where we want followed window location 2005/1/12 19:-13 21:22
|
||
<span class='line'>3725</span> 此函數會盡量不使obj超出window範圍的大小,除非設定了noResize/noMove或發生錯誤。若moveable+resizable(default),會嘗試先move再resize。
|
||
<span class='line'>3726</span> obj:
|
||
<span class='line'>3727</span> object or id
|
||
<span class='line'>3728</span> loc:
|
||
<span class='line'>3729</span> [left,top]/[left,top,width,height]/reference obj or id/0||'mouse':by mouse loc
|
||
<span class='line'>3730</span> 若left,top設定成%或是0.-,會當作相對於螢幕的比例。
|
||
<span class='line'>3731</span> margin:
|
||
<span class='line'>3732</span> 0/num=[num,num]/[offset x,offset y]
|
||
<span class='line'>3733</span> 在可能的情況下(不會造成超出window範圍)與loc之間空出的距離(所作的位移)。假如未輸入則自動設定。
|
||
<span class='line'>3734</span> flag: locate_elementF.~ !表示未實作
|
||
<span class='line'>3735</span> 下面幾項為預設模式
|
||
<span class='line'>3736</span> auto[Locate] 自動調整位置(default),若設定abs/rel則不會自動調整。
|
||
<span class='line'>3737</span> resizable 可調整obj大小(default) <-> noResize
|
||
<span class='line'>3738</span> moveable 可移動obj(default) <-> noMove
|
||
<span class='line'>3739</span> 下面幾項為模式選擇,擇一。
|
||
<span class='line'>3740</span> auto[Locate] 自動判定並調整位置(default),若設定abs/rel則不會自動調整。
|
||
<span class='line'>3741</span> abs[olute] 這裡的loc為絕對location。假如有提供margin,則會嘗試定位於loc+margin處。
|
||
<span class='line'>3742</span> rel[ative] 這裡的loc為相對於window左上角的location。假如有提供margin,則會嘗試定位於loc+margin處。
|
||
<span class='line'>3743</span> asDialog,dialog 預設是普通obj,但當設定為此項(dialog)時,loc會被當成reference obj。
|
||
<span class='line'>3744</span> 作為某obj(loc)之附屬obj(對話框/說明等),會避開主obj(reference obj)之顯示範圍。
|
||
<span class='line'>3745</span> 假如提供的loc並非obj,則會假設主obj是個從loc開始,長寬為margin的object。
|
||
<span class='line'>3746</span> dialogDown,dialogUp,dialogRight,dialogLeft 預設是擺在下面,此flag可改成上面或其他不同方位。
|
||
<span class='line'>3747</span> 擇一
|
||
<span class='line'>3748</span> resizable 可調整obj大小(default) <-> noResize
|
||
<span class='line'>3749</span> noResize 不可調整obj大小,若可移動會將整個obj移到能看清的邊界。
|
||
<span class='line'>3750</span> 擇一
|
||
<span class='line'>3751</span> moveable 可移動obj(default) <-> noMove
|
||
<span class='line'>3752</span> noMove 不可移動obj,若可調整大小會將整個obj縮到能看清的大小。
|
||
<span class='line'>3753</span> 下面幾項可任喜好選購(笑)
|
||
<span class='line'>3754</span> keepDisplay 是否維持顯示之display mode。沒有時則顯示之。
|
||
<span class='line'>3755</span> create 假如不存在此obj就造出來。預設若無法取得此obj則會直接return
|
||
<span class='line'>3756</span>
|
||
<span class='line'>3757</span> ! !假如沒足夠空間則不顯示,或是僅顯示警告。
|
||
<span class='line'>3758</span>
|
||
<span class='line'>3759</span> * 假如在事件中設定'eventObj=event'可掌握mouse event
|
||
<span class='line'>3760</span>
|
||
<span class='line'>3761</span> TODO:
|
||
<span class='line'>3762</span> locate_elementClip=[l,t,w,h]: resizable時將obj限制在這個範圍內
|
||
<span class='line'>3763</span>
|
||
<span class='line'>3764</span> to top:
|
||
<span class='line'>3765</span> var locate_elementF;
|
||
<span class='line'>3766</span> setObjValue('locate_elementF','resizable=0,moveable=0,autoLocate=0,auto=0,absolute=1,abs=1,relative=2,rel=2,asDialog=3,dialog=3,modeFlag=3,dialogDown=3,dialogUp=7,dialogRight=11,dialogLeft=15,dialogFlag=15,dialogForce=16,noResize=32,noMove=64,keepDisplay=128,create=256',1); // revise
|
||
<span class='line'>3767</span> */</span><span class="WHIT">
|
||
<span class='line'>3768</span> </span><span class="COMM">//locate_element[generateCode.dLK]='eventObj,locate_elementF,get_window_status,locate_element';</span><span class="WHIT">
|
||
<span class='line'>3769</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">locate_element</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">loc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">margin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3770</span> </span><span class="WHIT"> </span><span class="COMM">// 前置處理</span><span class="WHIT">
|
||
<span class='line'>3771</span>
|
||
<span class='line'>3772</span> </span><span class="WHIT"> </span><span class="COMM">// setup obj</span><span class="WHIT">
|
||
<span class='line'>3773</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">flag</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3774</span> </span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.auto</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3775</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3776</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3777</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3778</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3779</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.create</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3780</span> </span><span class="WHIT"> </span><span class="NAME">document.body.appendChild</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3781</span> </span><span class="WHIT"> </span><span class="NAME">obj.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3782</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3783</span>
|
||
<span class='line'>3784</span> </span><span class="WHIT"> </span><span class="COMM">// 在 dialog 時之預設位移</span><span class="WHIT">
|
||
<span class='line'>3785</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">dMargin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3786</span> </span><span class="WHIT"> </span><span class="STRN">'X'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3787</span> </span><span class="WHIT"> </span><span class="STRN">'Y'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT">
|
||
<span class='line'>3788</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3789</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.keepDisplay</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">obj.style.display</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'block'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Visibility</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT">
|
||
<span class='line'>3790</span> </span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.keepDisplay</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">obj.style.visibility</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'visible'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">win</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.modeFlag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialog</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT">
|
||
<span class='line'>3791</span> </span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogFlag</span><span class="WHIT">
|
||
<span class='line'>3792</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">turnPercent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3793</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3794</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">p.match</span><span class="PUNC">(</span><span class="REGX">/([\d.]+)/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3795</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3796</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>3797</span> </span><span class="WHIT"> </span><span class="COMM">// typeof p1='undefined'&&</span><span class="WHIT">
|
||
<span class='line'>3798</span> </span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3799</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3800</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3801</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dealPercent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3802</span> </span><span class="WHIT"> </span><span class="COMM">// t: 0:loc, 1:margin</span><span class="WHIT">
|
||
<span class='line'>3803</span>
|
||
<span class='line'>3804</span> </span><span class="WHIT"> </span><span class="COMM">// 是否重新指定</span><span class="WHIT">
|
||
<span class='line'>3805</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3806</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3807</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o.split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3808</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3809</span> </span><span class="WHIT"> </span><span class="COMM">// 取百分比%</span><span class="WHIT">
|
||
<span class='line'>3810</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'L'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'X'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT">
|
||
<span class='line'>3811</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3812</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3813</span> </span><span class="WHIT"> </span><span class="STRN">'X'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3814</span> </span><span class="WHIT"> </span><span class="STRN">'Y'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT">
|
||
<span class='line'>3815</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3816</span> </span><span class="WHIT"> </span><span class="STRN">'L'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3817</span> </span><span class="WHIT"> </span><span class="STRN">'T'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3818</span> </span><span class="WHIT"> </span><span class="COMM">// 假如o[2]未定義,W也會未定義(但有index)</span><span class="WHIT">
|
||
<span class='line'>3819</span> </span><span class="WHIT"> </span><span class="STRN">'W'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3820</span> </span><span class="WHIT"> </span><span class="STRN">'H'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT">
|
||
<span class='line'>3821</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3822</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3823</span> </span><span class="WHIT"> </span><span class="NAME">o.X</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">turnPercent</span><span class="PUNC">(</span><span class="NAME">o.X</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">win.windowW</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o.Y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">turnPercent</span><span class="PUNC">(</span><span class="NAME">o.Y</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3824</span> </span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3825</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3826</span> </span><span class="WHIT"> </span><span class="NAME">o.L</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">turnPercent</span><span class="PUNC">(</span><span class="NAME">o.L</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">win.windowW</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o.T</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">turnPercent</span><span class="PUNC">(</span><span class="NAME">o.T</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3827</span> </span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3828</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o.W</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3829</span> </span><span class="WHIT"> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">o.W</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3830</span> </span><span class="WHIT"> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">o.H</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3831</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>3832</span> </span><span class="WHIT"> </span><span class="NAME">o.W</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">turnPercent</span><span class="PUNC">(</span><span class="NAME">o.W</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">win.windowW</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o.H</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">turnPercent</span><span class="PUNC">(</span><span class="NAME">o.H</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3833</span> </span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3834</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3835</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3836</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3837</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3838</span> </span><span class="WHIT"> </span><span class="NAME">margin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3839</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>3840</span> </span><span class="WHIT"> </span><span class="NAME">loc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3841</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">makeFit</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">hc</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3842</span> </span><span class="WHIT"> </span><span class="COMM">// test if out of range & 將box調整在range[left,top,right,bottom]內:先move,再resize</span><span class="WHIT">
|
||
<span class='line'>3843</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3844</span> </span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3845</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3846</span> </span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3847</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">obj.offsetWidth</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3848</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3849</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3850</span> </span><span class="WHIT"> </span><span class="NAME">boxW</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3851</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>3852</span> </span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3853</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">obj.offsetHeight</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3854</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3855</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3856</span> </span><span class="WHIT"> </span><span class="NAME">boxH</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3857</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>3858</span> </span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3859</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">hc</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">hc</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">obj.offsetHeight</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3860</span> </span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3861</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3862</span>
|
||
<span class='line'>3863</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.style</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3864</span> </span><span class="WHIT"> </span><span class="NAME">overflow</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">visibility</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'hidden'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3865</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">width</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3866</span> </span><span class="WHIT"> </span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3867</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">height</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3868</span> </span><span class="WHIT"> </span><span class="COMM">// 重設obj。</span><span class="WHIT">
|
||
<span class='line'>3869</span> </span><span class="WHIT"> </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3870</span> </span><span class="WHIT"> </span><span class="COMM">// 得設定obj之display,因為不這樣不能定offset。但可不顯現出來…只是好像沒啥效果。</span><span class="WHIT">
|
||
<span class='line'>3871</span> </span><span class="WHIT"> </span><span class="NAME">display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'block'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3872</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3873</span>
|
||
<span class='line'>3874</span> </span><span class="WHIT"> </span><span class="COMM">// if(dialog!=locate_elementF.dialogDown&&dialog!=locate_elementF.dialogUp)dialog=0;</span><span class="WHIT">
|
||
<span class='line'>3875</span> </span><span class="WHIT"> </span><span class="COMM">// setup loc#1: deal dialog</span><span class="WHIT">
|
||
<span class='line'>3876</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">loc</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3877</span> </span><span class="WHIT"> </span><span class="COMM">// 若loc為id</span><span class="WHIT">
|
||
<span class='line'>3878</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">loc</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3879</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3880</span> </span><span class="WHIT"> </span><span class="NAME">loc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3881</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3882</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">loc</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">loc.offsetLeft</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3883</span> </span><span class="WHIT"> </span><span class="COMM">// 若loc為Document Object</span><span class="WHIT">
|
||
<span class='line'>3884</span>
|
||
<span class='line'>3885</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>3886</span> //alert(loc.id+':'+loc.offsetLeft+','+loc.offsetTop+';'+loc.offsetWidth+','+loc.offsetHeight);
|
||
<span class='line'>3887</span> var l=loc.offsetLeft,t=loc.offsetTop,w,h,n,add,outsideBLOCK,countH=window.navigator.userAgent.indexOf("MSIE")>=0; // 真妙..moz表示在<H\d>中的obj時不把H\d當作parent算進去
|
||
<span class='line'>3888</span> if(typeof loc.offsetWidth!='undefined')w=loc.offsetWidth,h=loc.offsetHeight; // loc.offsetWidth可能未定義?
|
||
<span class='line'>3889</span> //var tt=loc.tagName+':'+loc.offsetLeft+','+loc.offsetTop+'\n'; // for debug
|
||
<span class='line'>3890</span> // 下面這段依瀏覽器而有不同 (-_-)!!
|
||
<span class='line'>3891</span> while(isNaN((loc=loc.parentNode).offsetLeft)){ // IE在用style:class時會出現誤差。
|
||
<span class='line'>3892</span> n=loc.tagName;
|
||
<span class='line'>3893</span> //if( !/^T(ABLE|BODY|R)$/.test(n=loc.tagName) && (countH||!/^H\d$/.test(n)) )l+=loc.offsetLeft,t+=loc.offsetTop;
|
||
<span class='line'>3894</span> if(n=='DIV')add=outsideBLOCK;
|
||
<span class='line'>3895</span> else if(n=='TD' || countH&&/^H\d$/.test(n))add=1;
|
||
<span class='line'>3896</span> outsideBLOCK= n=='TABLE'||n=='DIV'; // loc.style.display
|
||
<span class='line'>3897</span> //tt+=(add?'':'#')+n+(loc.style.display?'('+loc.style.display+')':'')+':'+loc.offsetLeft+','+loc.offsetTop+(outsideBLOCK?', outside BLOCK':'')+'\n';
|
||
<span class='line'>3898</span> if(add)add=0,l+=loc.offsetLeft,t+=loc.offsetTop;
|
||
<span class='line'>3899</span> }
|
||
<span class='line'>3900</span> //alert(l+','+t+'\n'+tt); // need to enable definition of tt above
|
||
<span class='line'>3901</span> loc={'L':l,'T':t,'W':w,'H':h};
|
||
<span class='line'>3902</span> */</span><span class="WHIT">
|
||
<span class='line'>3903</span> </span><span class="WHIT"> </span><span class="NAME">loc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">get_node_offset</span><span class="PUNC">(</span><span class="NAME">loc</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3904</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.modeFlag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">locate_elementF.auto</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3905</span> </span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialog</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">locate_elementF.auto</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialog</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3906</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3907</span>
|
||
<span class='line'>3908</span> </span><span class="WHIT"> </span><span class="COMM">// setup margin</span><span class="WHIT">
|
||
<span class='line'>3909</span> </span><span class="WHIT"> </span><span class="NAME">win</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">get_window_status</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3910</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">margin</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3911</span> </span><span class="WHIT"> </span><span class="NAME">margin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
|
||
<span class='line'>3912</span> </span><span class="WHIT"> </span><span class="COMM">// dialog?dMargin:{'X':0,'Y':0};</span><span class="WHIT">
|
||
<span class='line'>3913</span> </span><span class="WHIT"> </span><span class="NAME">dMargin</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3914</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>3915</span> </span><span class="WHIT"> </span><span class="NAME">dealPercent</span><span class="PUNC">(</span><span class="NAME">margin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3916</span>
|
||
<span class='line'>3917</span> </span><span class="WHIT"> </span><span class="COMM">// setup loc#2: deal abs/rel</span><span class="WHIT">
|
||
<span class='line'>3918</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">loc</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">loc</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'mouse'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3919</span> </span><span class="WHIT"> </span><span class="NAME">loc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3920</span> </span><span class="WHIT"> </span><span class="NAME">L</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">win.mouseX</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3921</span> </span><span class="WHIT"> </span><span class="NAME">T</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">win.mouseY</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
|
||
<span class='line'>3922</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3923</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3924</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.modeFlag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">locate_elementF.auto</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">loc</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT">
|
||
<span class='line'>3925</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="REGX">/[%.]/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">loc</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3926</span> </span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.rel</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">locate_elementF.auto</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3927</span> </span><span class="WHIT"> </span><span class="NAME">dealPercent</span><span class="PUNC">(</span><span class="NAME">loc</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3928</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3929</span> </span><span class="WHIT"> </span><span class="COMM">// alert(loc.L+','+loc.T+';'+margin.X+','+margin.Y);</span><span class="WHIT">
|
||
<span class='line'>3930</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.modeFlag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">locate_elementF.auto</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3931</span> </span><span class="WHIT"> </span><span class="COMM">// 到這裡還沒決定就很奇怪了</span><span class="WHIT">
|
||
<span class='line'>3932</span> </span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF</span><span class="PUNC">[</span><span class="NAME">loc.W</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">loc.H</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">loc.T</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="WHIT">
|
||
<span class='line'>3933</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">loc.L</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">win.windowW</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialog</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="STRN">'dialog'</span><span class="WHIT">
|
||
<span class='line'>3934</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'abs'</span><span class="PUNC">]</span><span class="WHIT">
|
||
<span class='line'>3935</span> </span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">locate_elementF.auto</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3936</span>
|
||
<span class='line'>3937</span> </span><span class="WHIT"> </span><span class="COMM">// 調整與判別</span><span class="WHIT">
|
||
<span class='line'>3938</span> </span><span class="WHIT"> </span><span class="COMM">// alert(loc.L+','+loc.T+';'+margin.X+','+margin.Y);</span><span class="WHIT">
|
||
<span class='line'>3939</span> </span><span class="WHIT"> </span><span class="COMM">// alert(loc.L+margin.X+','+(loc.T+margin.Y));</span><span class="WHIT">
|
||
<span class='line'>3940</span> </span><span class="WHIT"> </span><span class="COMM">// alert('dialog:'+dialog);</span><span class="WHIT">
|
||
<span class='line'>3941</span>
|
||
<span class='line'>3942</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.modeFlag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">locate_elementF.rel</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3943</span> </span><span class="WHIT"> </span><span class="COMM">// 改成絕對座標。此後僅存abs/dialog</span><span class="WHIT">
|
||
<span class='line'>3944</span> </span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.abs</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">locate_elementF.rel</span><span class="COMM">// -(flag&locate_elementF.modeFlag)</span><span class="WHIT">
|
||
<span class='line'>3945</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">loc.L</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">loc.T</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3946</span>
|
||
<span class='line'>3947</span> </span><span class="WHIT"> </span><span class="COMM">// 最後要設定的值</span><span class="WHIT">
|
||
<span class='line'>3948</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">resizable</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.noResize</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loc.L</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loc.T</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">boxW</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">boxH</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3949</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.noMove</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3950</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">resizable</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3951</span> </span><span class="WHIT"> </span><span class="NAME">makeFit</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3952</span> </span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.windowW</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="WHIT">
|
||
<span class='line'>3953</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3954</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3955</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">margin.X</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
|
||
<span class='line'>3956</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="WHIT">
|
||
<span class='line'>3957</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">obj.offsetWidth</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="WHIT">
|
||
<span class='line'>3958</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.windowW</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3959</span> </span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3960</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">margin.Y</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
|
||
<span class='line'>3961</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="WHIT">
|
||
<span class='line'>3962</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">obj.offsetHeight</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="WHIT">
|
||
<span class='line'>3963</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3964</span> </span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3965</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>3966</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">dialog</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3967</span> </span><span class="WHIT"> </span><span class="COMM">// abs</span><span class="WHIT">
|
||
<span class='line'>3968</span> </span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">makeFit</span><span class="PUNC">(</span><span class="NAME">win.scrollX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3969</span> </span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.windowW</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3970</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3971</span> </span><span class="WHIT"> </span><span class="COMM">// 自動調整位置</span><span class="WHIT">
|
||
<span class='line'>3972</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">dialog</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3973</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">loc.W</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3974</span> </span><span class="WHIT"> </span><span class="NAME">loc.W</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3975</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">loc.H</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3976</span> </span><span class="WHIT"> </span><span class="NAME">loc.H</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3977</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>3978</span> </span><span class="WHIT"> </span><span class="COMM">// abs時,相當於dialog在(0,0)大小(0,0)</span><span class="WHIT">
|
||
<span class='line'>3979</span> </span><span class="WHIT"> </span><span class="NAME">loc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>3980</span> </span><span class="WHIT"> </span><span class="STRN">'L'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3981</span> </span><span class="WHIT"> </span><span class="STRN">'T'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3982</span> </span><span class="WHIT"> </span><span class="STRN">'W'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3983</span> </span><span class="WHIT"> </span><span class="STRN">'H'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
|
||
<span class='line'>3984</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3985</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">obj.innerHTML</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>3986</span> </span><span class="WHIT"> </span><span class="COMM">// 起碼先設定個大小以安排位置</span><span class="WHIT">
|
||
<span class='line'>3987</span> </span><span class="WHIT"> </span><span class="NAME">obj.innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3988</span>
|
||
<span class='line'>3989</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">lA</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">loc.T</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">loc.H</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">lB</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loc.T</span><span class="WHIT">
|
||
<span class='line'>3990</span> </span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">lC</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.windowW</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">loc.L</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">loc.W</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">lD</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loc.L</span><span class="WHIT">
|
||
<span class='line'>3991</span> </span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3992</span> </span><span class="WHIT"> </span><span class="COMM">// args for makeFit()</span><span class="WHIT">
|
||
<span class='line'>3993</span> </span><span class="WHIT"> </span><span class="NAME">m1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>3994</span> </span><span class="WHIT"> </span><span class="NAME">m3</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">win.scrollX</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.windowW</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m4</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">win.scrollY</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="WHIT">
|
||
<span class='line'>3995</span> </span><span class="WHIT"> </span><span class="COMM">// move kind set use locate_elementF.dialog~ flag</span><span class="WHIT">
|
||
<span class='line'>3996</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">movekind</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>3997</span> </span><span class="WHIT"> </span><span class="COMM">// alert(lA+','+lB+','+lC+','+lD+'\n'+obj.offsetWidth+','+obj.offsetHeight);</span><span class="WHIT">
|
||
<span class='line'>3998</span>
|
||
<span class='line'>3999</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>4000</span> +---------------------+
|
||
<span class='line'>4001</span> | ^ |
|
||
<span class='line'>4002</span> | | lB | <--screen (active frame)
|
||
<span class='line'>4003</span> | | |
|
||
<span class='line'>4004</span> |<---->#####<-------->| ###:reference obj
|
||
<span class='line'>4005</span> | lD | lC |
|
||
<span class='line'>4006</span> | | |
|
||
<span class='line'>4007</span> | | lA |
|
||
<span class='line'>4008</span> | | |
|
||
<span class='line'>4009</span> +---------------------+
|
||
<span class='line'>4010</span> */</span><span class="WHIT">
|
||
<span class='line'>4011</span> </span><span class="WHIT"> </span><span class="COMM">// 決定 mode</span><span class="WHIT">
|
||
<span class='line'>4012</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogForce</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4013</span> </span><span class="WHIT"> </span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">dialog</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4014</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4015</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.offsetWidth</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">win.windowW</span><span class="WHIT">
|
||
<span class='line'>4016</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogRight</span><span class="WHIT">
|
||
<span class='line'>4017</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogLeft</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">obj.offsetHeight</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4018</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.offsetHeight</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">lA</span><span class="WHIT">
|
||
<span class='line'>4019</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogUp</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">obj.offsetHeight</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">lB</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4020</span> </span><span class="WHIT"> </span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogDown</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4021</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.offsetHeight</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">lB</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4022</span> </span><span class="WHIT"> </span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogUp</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4023</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">obj.offsetHeight</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">win.windowH</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4024</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.offsetWidth</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">lC</span><span class="WHIT">
|
||
<span class='line'>4025</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogLeft</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">obj.offsetWidth</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">lD</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4026</span> </span><span class="WHIT"> </span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogRight</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4027</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.offsetWidth</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">lD</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4028</span> </span><span class="WHIT"> </span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogLeft</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4029</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">movekind</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4030</span> </span><span class="WHIT"> </span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
|
||
<span class='line'>4031</span> </span><span class="WHIT"> </span><span class="COMM">// 以較大、可視的為準</span><span class="WHIT">
|
||
<span class='line'>4032</span> </span><span class="WHIT"> </span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogRight</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">dialog</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogLeft</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
|
||
<span class='line'>4033</span> </span><span class="WHIT"> </span><span class="COMM">// 沒考慮假如lA<5時..</span><span class="WHIT">
|
||
<span class='line'>4034</span> </span><span class="WHIT"> </span><span class="NAME">lA</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">lB</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">resizable</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogUp</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogDown</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
|
||
<span class='line'>4035</span> </span><span class="WHIT"> </span><span class="COMM">//</span><span class="WHIT">
|
||
<span class='line'>4036</span> </span><span class="WHIT"> </span><span class="NAME">lC</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">lD</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">resizable</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogLeft</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogRight</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4037</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4038</span>
|
||
<span class='line'>4039</span> </span><span class="WHIT"> </span><span class="COMM">// alert(movekind);</span><span class="WHIT">
|
||
<span class='line'>4040</span> </span><span class="WHIT"> </span><span class="COMM">// 決定location</span><span class="WHIT">
|
||
<span class='line'>4041</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogDown</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4042</span> </span><span class="WHIT"> </span><span class="NAME">m2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loc.T</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">loc.H</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loc.H</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4043</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogUp</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4044</span> </span><span class="WHIT"> </span><span class="NAME">m4</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loc.T</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">obj.offsetHeight</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">margin.Y</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4045</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogRight</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4046</span> </span><span class="WHIT"> </span><span class="NAME">m1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loc.L</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">loc.W</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loc.W</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4047</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>4048</span> </span><span class="WHIT"> </span><span class="NAME">m3</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loc.L</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">obj.offsetWidth</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">margin.X</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4049</span> </span><span class="WHIT"> </span><span class="COMM">//else if(movekind==locate_elementF.dialogLeft)</span><span class="WHIT">
|
||
<span class='line'>4050</span>
|
||
<span class='line'>4051</span> </span><span class="WHIT"> </span><span class="COMM">// 加上偏移</span><span class="WHIT">
|
||
<span class='line'>4052</span> </span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4053</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">resizable</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4054</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">m1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">obj.offsetWidth</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">m3</span><span class="WHIT">
|
||
<span class='line'>4055</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4056</span> </span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">margin.X</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4057</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">m2</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">obj.offsetHeight</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">m4</span><span class="WHIT">
|
||
<span class='line'>4058</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4059</span> </span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">margin.Y</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4060</span> </span><span class="WHIT"> </span><span class="COMM">// 確保不會撞到</span><span class="WHIT">
|
||
<span class='line'>4061</span> </span><span class="WHIT"> </span><span class="NAME">m3</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">obj.offsetWidth</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m4</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">obj.offsetHeight</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4062</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4063</span> </span><span class="WHIT"> </span><span class="COMM">// 奇怪的是,alert(obj.offsetWidth)後obj.offsetWidth就變成0了。可能因為這值需要出函數之後再改。</span><span class="WHIT">
|
||
<span class='line'>4064</span> </span><span class="WHIT"> </span><span class="COMM">// alert(resizable+'\n'+m1+','+m2+','+m3+','+m4+','+movekind+'\n'+obj.offsetWidth+','+obj.offsetHeight);</span><span class="WHIT">
|
||
<span class='line'>4065</span> </span><span class="WHIT"> </span><span class="NAME">makeFit</span><span class="PUNC">(</span><span class="NAME">m1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m3</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m4</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogRight</span><span class="WHIT">
|
||
<span class='line'>4066</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">movekind</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">locate_elementF.dialogLeft</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">loc.T</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4067</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4068</span>
|
||
<span class='line'>4069</span> </span><span class="WHIT"> </span><span class="COMM">// 設定位置</span><span class="WHIT">
|
||
<span class='line'>4070</span> </span><span class="WHIT"> </span><span class="COMM">// alert(boxL+','+boxT+','+boxW+','+boxH+','+Display);</span><span class="WHIT">
|
||
<span class='line'>4071</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.style</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4072</span> </span><span class="WHIT"> </span><span class="NAME">position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'absolute'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4073</span> </span><span class="WHIT"> </span><span class="NAME">left</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">boxL</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4074</span> </span><span class="WHIT"> </span><span class="NAME">top</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">boxT</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4075</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxW</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">boxH</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4076</span> </span><span class="WHIT"> </span><span class="NAME">overflow</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'auto'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4077</span> </span><span class="WHIT"> </span><span class="COMM">//alert(width+','+height+'\n'+typeof width+'\n->w,h:'+boxW+','+boxH);</span><span class="WHIT">
|
||
<span class='line'>4078</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxW</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4079</span> </span><span class="WHIT"> </span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">boxW</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4080</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">boxH</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4081</span> </span><span class="WHIT"> </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">boxH</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4082</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4083</span> </span><span class="WHIT"> </span><span class="NAME">display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Display</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4084</span> </span><span class="WHIT"> </span><span class="NAME">visibility</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Visibility</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4085</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4086</span>
|
||
<span class='line'>4087</span> </span><span class="WHIT"> </span><span class="COMM">// alert(obj.style.width+','+obj.style.height+'\n'+obj.offsetWidth+','+obj.offsetHeight);</span><span class="WHIT">
|
||
<span class='line'>4088</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4089</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4090</span>
|
||
<span class='line'>4091</span>
|
||
<span class='line'>4092</span>
|
||
<span class='line'>4093</span>
|
||
<span class='line'>4094</span>
|
||
<span class='line'>4095</span>
|
||
<span class='line'>4096</span>
|
||
<span class='line'>4097</span>
|
||
<span class='line'>4098</span>
|
||
<span class='line'>4099</span> </span><span class="COMM">// 2007/4/25-27 0:48:22 RFC 3492 IDNA Punycode 未最佳化</span><span class="WHIT">
|
||
<span class='line'>4100</span> </span><span class="COMM">// http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion</span><span class="WHIT">
|
||
<span class='line'>4101</span> </span><span class="COMM">// http://xn-punycode.com/</span><span class="WHIT">
|
||
<span class='line'>4102</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">Punycode</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4103</span>
|
||
<span class='line'>4104</span> </span><span class="NAME">Punycode.map</span><span class="PUNC">=</span><span class="STRN">'abcdefghijklmnopqrstuvwxyz0123456789'</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4105</span> </span><span class="NAME">Punycode.Dmap</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4106</span> </span><span class="NAME">Punycode.base</span><span class="PUNC">=</span><span class="NUMB">36</span><span class="PUNC">,</span><span class="COMM">//Punycode.map.length</span><span class="WHIT">
|
||
<span class='line'>4107</span> </span><span class="NAME">Punycode.tmin</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4108</span> </span><span class="NAME">Punycode.tmax</span><span class="PUNC">=</span><span class="NUMB">26</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4109</span> </span><span class="NAME">Punycode.skew</span><span class="PUNC">=</span><span class="NUMB">38</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4110</span> </span><span class="NAME">Punycode.damp</span><span class="PUNC">=</span><span class="NUMB">700</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4111</span> </span><span class="NAME">Punycode.initial_bias</span><span class="PUNC">=</span><span class="NUMB">72</span><span class="PUNC">,</span><span class="COMM">//偏移</span><span class="WHIT">
|
||
<span class='line'>4112</span> </span><span class="NAME">Punycode.initial_n</span><span class="PUNC">=</span><span class="NUMB">0x80</span><span class="PUNC">,</span><span class="COMM">//128</span><span class="WHIT">
|
||
<span class='line'>4113</span> </span><span class="NAME">Punycode.prefix</span><span class="PUNC">=</span><span class="STRN">"xn--"</span><span class="PUNC">,</span><span class="COMM">//the default ACE prefix</span><span class="WHIT">
|
||
<span class='line'>4114</span> </span><span class="NAME">Punycode.delimiter</span><span class="PUNC">=</span><span class="STRN">'-'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4115</span> </span><span class="NAME">Punycode._b</span><span class="PUNC">=</span><span class="NAME">Punycode.base</span><span class="PUNC">-</span><span class="NAME">Punycode.tmin</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4116</span> </span><span class="COMM">//Punycode._t=(Punycode._b*Punycode.tmax)>>1,</span><span class="WHIT">
|
||
<span class='line'>4117</span> </span><span class="NAME">Punycode._t</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">Punycode._b</span><span class="PUNC">*</span><span class="NAME">Punycode.tmax</span><span class="PUNC">/</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4118</span>
|
||
<span class='line'>4119</span> </span><span class="COMM">// IDNA ToASCII</span><span class="WHIT">
|
||
<span class='line'>4120</span> </span><span class="NAME">Punycode.encodeDomain</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">UURL</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4121</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">UURL.match</span><span class="PUNC">(</span><span class="REGX">/^([\w\d\-]+:\/\/)?([^\/]+)/</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">UDomain</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">?</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">UDomain</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="NAME">UURL.indexOf</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4122</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('<hr/>Punycode.encodeDomain UDomain: ['+i+']['+m+']<br/>');</span><span class="WHIT">
|
||
<span class='line'>4123</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">&&</span><span class="NAME">m.replace</span><span class="PUNC">(</span><span class="REGX">/[\x01-\x7f]+/g</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">Punycode</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4124</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">m.replace</span><span class="PUNC">(</span><span class="REGX">/([^.]+)\./g</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="NAME">$1</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4125</span> </span><span class="WHIT"> </span><span class="COMM">//document.write($1+'→'+encode($1)+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4126</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">prefix</span><span class="PUNC">+</span><span class="NAME">encode</span><span class="PUNC">(</span><span class="NAME">$1</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'.'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4127</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">UURL</span><span class="PUNC">=</span><span class="NAME">encodeURI</span><span class="PUNC">(</span><span class="NAME">UURL.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">m</span><span class="PUNC">+</span><span class="NAME">UURL.slice</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">+</span><span class="NAME">UDomain.length</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4128</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">UURL</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4129</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4130</span>
|
||
<span class='line'>4131</span> </span><span class="COMM">// IDNA ToUnicode</span><span class="WHIT">
|
||
<span class='line'>4132</span> </span><span class="NAME">Punycode.decodeDomain</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">PURL</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">Punycode</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4133</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">PURL.match</span><span class="PUNC">(</span><span class="REGX">/^([\w\d\-]+:\/\/)?([^\/]+)/</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">PDomain</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">?</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">PDomain</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="NAME">PURL.indexOf</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4134</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('<hr/>Punycode.decodeDomain PDomain: ['+i+']['+m+']<br/>');</span><span class="WHIT">
|
||
<span class='line'>4135</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4136</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">m.replace</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="NAME">prefix</span><span class="PUNC">+</span><span class="STRN">'([^.]+)\\.'</span><span class="PUNC">,</span><span class="STRN">'g'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="NAME">$1</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4137</span> </span><span class="WHIT"> </span><span class="COMM">//document.write($1+'→'+decode($1)+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4138</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">decode</span><span class="PUNC">(</span><span class="NAME">$1</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'.'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4139</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4140</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">!=</span><span class="NAME">PDomain</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4141</span> </span><span class="WHIT"> </span><span class="NAME">PURL</span><span class="PUNC">=</span><span class="NAME">PURL.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">m</span><span class="PUNC">+</span><span class="NAME">PURL.slice</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">+</span><span class="NAME">PDomain.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4142</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">PURL</span><span class="PUNC">=</span><span class="NAME">decodeURI</span><span class="PUNC">(</span><span class="NAME">PURL</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">PURL</span><span class="PUNC">=</span><span class="NAME">unescape</span><span class="PUNC">(</span><span class="NAME">PURL</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4143</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4144</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4145</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">PURL</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4146</span> </span><span class="PUNC">}</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4147</span>
|
||
<span class='line'>4148</span>
|
||
<span class='line'>4149</span> </span><span class="NAME">Punycode.adapt</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">delta</span><span class="PUNC">,</span><span class="NAME">numpoints</span><span class="PUNC">,</span><span class="NAME">firsttime</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">Punycode</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4150</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('*adapt: '+delta+', '+numpoints+', '+firsttime+', _b='+_b+', _t='+_t+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4151</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="PUNC">=</span><span class="NAME">firsttime</span><span class="PUNC">?</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">delta</span><span class="PUNC">/</span><span class="NAME">damp</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NAME">delta</span><span class="PUNC">>></span><span class="NUMB">1</span><span class="PUNC">;</span><span class="COMM">//Math.floor(delta/(firsttime?damp:2));</span><span class="WHIT">
|
||
<span class='line'>4152</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">delta</span><span class="PUNC">/</span><span class="NAME">numpoints</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4153</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4154</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">delta</span><span class="PUNC">></span><span class="NAME">_t</span><span class="PUNC">;</span><span class="NAME">k</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">base</span><span class="PUNC">)</span><span class="NAME">delta</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">delta</span><span class="PUNC">/</span><span class="NAME">_b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4155</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">+</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">_b</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">*</span><span class="NAME">delta</span><span class="PUNC">/</span><span class="PUNC">(</span><span class="NAME">delta</span><span class="PUNC">+</span><span class="NAME">skew</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4156</span> </span><span class="PUNC">}</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4157</span>
|
||
<span class='line'>4158</span> </span><span class="NAME">Punycode.encode</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">UString</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">Punycode</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4159</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">initial_n</span><span class="PUNC">,</span><span class="NAME">cA</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">mA</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">c</span><span class="WHIT">
|
||
<span class='line'>4160</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">q</span><span class="PUNC">,</span><span class="NAME">delta</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">bias</span><span class="PUNC">=</span><span class="NAME">initial_bias</span><span class="PUNC">,</span><span class="NAME">output</span><span class="PUNC">=</span><span class="NAME">UString.replace</span><span class="PUNC">(</span><span class="REGX">/[^\x01-\x7f]+/g</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">h</span><span class="PUNC">=</span><span class="NAME">output.length</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">h</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4161</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('<hr/>Punycode.encode begin: ['+output+']<br/>');</span><span class="WHIT">
|
||
<span class='line'>4162</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="NAME">output</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">delimiter</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4163</span>
|
||
<span class='line'>4164</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">UString.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4165</span> </span><span class="WHIT"> </span><span class="NAME">cA.push</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">UString.charCodeAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4166</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">></span><span class="NAME">n</span><span class="PUNC">)</span><span class="NAME">mA.push</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4167</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4168</span> </span><span class="WHIT"> </span><span class="NAME">mA.sort</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">-</span><span class="NAME">a</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4169</span>
|
||
<span class='line'>4170</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC"><</span><span class="NAME">cA.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4171</span> </span><span class="WHIT"> </span><span class="KEYW">do</span><span class="PUNC">{</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">mA.pop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">==</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 預防重複</span><span class="WHIT">
|
||
<span class='line'>4172</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4173</span> </span><span class="WHIT"> </span><span class="COMM">//if(m-n>(Number.MAX_VALUE-delta)/(h+1)){alert('Punycode: overflow');return;}</span><span class="WHIT">
|
||
<span class='line'>4174</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">-</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">*</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">// should test overflow</span><span class="WHIT">
|
||
<span class='line'>4175</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4176</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">cA.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4177</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">cA</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC"><</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">++</span><span class="NAME">delta</span><span class="PUNC">;</span><span class="COMM">//if(c=cA[i],c<n&&!++delta){alert('Punycode: overflow');return;}// fail on overflow</span><span class="WHIT">
|
||
<span class='line'>4178</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('<b>'+UString.charAt(i)+' '+(c.toString(16)+','+n.toString(16)).toUpperCase()+'</b><br/>');</span><span class="WHIT">
|
||
<span class='line'>4179</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4180</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">=</span><span class="NAME">delta</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">=</span><span class="NAME">base</span><span class="PUNC">;</span><span class="PUNC">;</span><span class="NAME">k</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">base</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4181</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">k</span><span class="PUNC"><=</span><span class="NAME">bias</span><span class="COMM">/* +tmin not needed */</span><span class="PUNC">?</span><span class="NAME">tmin</span><span class="PUNC">:</span><span class="NAME">k</span><span class="PUNC">>=</span><span class="NAME">bias</span><span class="PUNC">+</span><span class="NAME">tmax</span><span class="PUNC">?</span><span class="NAME">tmax</span><span class="PUNC">:</span><span class="NAME">k</span><span class="PUNC">-</span><span class="NAME">bias</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4182</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC"><</span><span class="NAME">t</span><span class="PUNC">)</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4183</span> </span><span class="WHIT"> </span><span class="NAME">output</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">map.charAt</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">-</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">%</span><span class="PUNC">(</span><span class="NAME">base</span><span class="PUNC">-</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4184</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('<b>'+output+'</b><br/>');</span><span class="WHIT">
|
||
<span class='line'>4185</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">-</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">/</span><span class="PUNC">(</span><span class="NAME">base</span><span class="PUNC">-</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4186</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4187</span> </span><span class="WHIT"> </span><span class="NAME">output</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">map.charAt</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4188</span> </span><span class="WHIT"> </span><span class="NAME">bias</span><span class="PUNC">=</span><span class="NAME">adapt</span><span class="PUNC">(</span><span class="NAME">delta</span><span class="PUNC">,</span><span class="NAME">h</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">h</span><span class="PUNC">==</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4189</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('h='+h+'/'+cA.length+', bias='+bias+', '+output+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4190</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">h</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4191</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4192</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4193</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="PUNC">++</span><span class="PUNC">,</span><span class="NAME">n</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4194</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4195</span> </span><span class="WHIT"> </span><span class="COMM">//document.write(UString+'→'+output+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4196</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">output</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4197</span> </span><span class="PUNC">}</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4198</span>
|
||
<span class='line'>4199</span> </span><span class="NAME">Punycode.decode</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">PCode</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">Punycode</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4200</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">initial_n</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">PCode.lastIndexOf</span><span class="PUNC">(</span><span class="NAME">delimiter</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">bias</span><span class="PUNC">=</span><span class="NAME">initial_bias</span><span class="PUNC">,</span><span class="NAME">output</span><span class="PUNC">=</span><span class="NAME">p</span><span class="PUNC">==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">?</span><span class="STRN">''</span><span class="PUNC">:</span><span class="NAME">PCode.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4201</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">oldi</span><span class="PUNC">,</span><span class="NAME">w</span><span class="PUNC">,</span><span class="NAME">digit</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4202</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('<hr/>Punycode.decode begin: ['+output+']<br/>');</span><span class="WHIT">
|
||
<span class='line'>4203</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Dmap</span><span class="PUNC">)</span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">w</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">Dmap</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="NAME">w</span><span class="PUNC"><</span><span class="NAME">map.length</span><span class="PUNC">;</span><span class="NAME">w</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="NAME">Dmap</span><span class="PUNC">[</span><span class="NAME">map.charAt</span><span class="PUNC">(</span><span class="NAME">w</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">w</span><span class="PUNC">;</span><span class="COMM">//,document.write('Dmap['+map.charAt(w)+']='+w+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4204</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC"><</span><span class="NAME">PCode.length</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4205</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">oldi</span><span class="PUNC">=</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">w</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">=</span><span class="NAME">base</span><span class="PUNC">;</span><span class="PUNC">;</span><span class="NAME">k</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">base</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4206</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">++</span><span class="NAME">p</span><span class="PUNC">>=</span><span class="NAME">PCode.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'Punycode: invalid input: out of range'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">PCode</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4207</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('PCode.charAt('+p+')'+' = '+PCode.charAt(p)+' → '+Dmap[PCode.charAt(p)]+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4208</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">digit</span><span class="PUNC">=</span><span class="NAME">Dmap</span><span class="PUNC">[</span><span class="NAME">PCode.charAt</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'Punycode: invalid input'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">PCode</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4209</span> </span><span class="WHIT"> </span><span class="COMM">//if(digit>(Number.MAX_VALUE-i)/w){alert('Punycode: overflow');return;}</span><span class="WHIT">
|
||
<span class='line'>4210</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">digit</span><span class="PUNC">*</span><span class="NAME">w</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4211</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">k</span><span class="PUNC"><=</span><span class="NAME">bias</span><span class="COMM">/* +tmin not needed */</span><span class="PUNC">?</span><span class="NAME">tmin</span><span class="PUNC">:</span><span class="NAME">k</span><span class="PUNC">>=</span><span class="NAME">bias</span><span class="PUNC">+</span><span class="NAME">tmax</span><span class="PUNC">?</span><span class="NAME">tmax</span><span class="PUNC">:</span><span class="NAME">k</span><span class="PUNC">-</span><span class="NAME">bias</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4212</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('i='+i+', t='+t+', digit='+digit+', k='+k+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4213</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">digit</span><span class="PUNC"><</span><span class="NAME">t</span><span class="PUNC">)</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4214</span> </span><span class="WHIT"> </span><span class="COMM">//if(w>Number.MAX_VALUE/(base-t)){alert('Punycode: overflow');return;}</span><span class="WHIT">
|
||
<span class='line'>4215</span> </span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">*</span><span class="PUNC">=</span><span class="NAME">base</span><span class="PUNC">-</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4216</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4217</span> </span><span class="WHIT"> </span><span class="NAME">bias</span><span class="PUNC">=</span><span class="NAME">adapt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">-</span><span class="NAME">oldi</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">output.length</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">oldi</span><span class="PUNC">==</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4218</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('bias='+bias+', n='+n+', i='+i+', l='+l+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4219</span> </span><span class="WHIT"> </span><span class="COMM">//if(i/l>Number.MAX_VALUE-n){alert('Punycode: overflow');return;}</span><span class="WHIT">
|
||
<span class='line'>4220</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">/</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4221</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">%</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4222</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('['+output.length+']'+output+'+'+n+'(0x'+n.toString(16).toUpperCase()+')@'+i+'→');</span><span class="WHIT">
|
||
<span class='line'>4223</span> </span><span class="WHIT"> </span><span class="NAME">output</span><span class="PUNC">=</span><span class="NAME">output.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">String.fromCharCode</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">output.slice</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4224</span> </span><span class="WHIT"> </span><span class="COMM">//document.write('['+output.length+']'+output+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4225</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4226</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4227</span> </span><span class="WHIT"> </span><span class="COMM">//document.write(PCode+'→'+output+'<br/>');</span><span class="WHIT">
|
||
<span class='line'>4228</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">output</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4229</span> </span><span class="PUNC">}</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4230</span>
|
||
<span class='line'>4231</span>
|
||
<span class='line'>4232</span> </span><span class="COMM">/*
|
||
<span class='line'>4233</span> var testC='Hello-Another-Way--fc4qua05auwb3674vfr0b',rC;
|
||
<span class='line'>4234</span> document.write('<hr/>'+
|
||
<span class='line'>4235</span> //Punycode.encodeDomain('http://國際.計畫.org/國際.計畫.htm')
|
||
<span class='line'>4236</span> Punycode.decodeDomain('http://xn--9cs229l.xn--gpyr35b.org/%E5%9C%8B%E9%9A%9B.%E8%A8%88%E7%95%AB.htm')
|
||
<span class='line'>4237</span> //Punycode.encode('463578')
|
||
<span class='line'>4238</span> //Punycode.decode('ihqwcrb4cv8a8dqg056pqjye')+'<hr/>'+Punycode.encode('他们为什么不说中文')
|
||
<span class='line'>4239</span> //Punycode.decode('ihqwctvzc91f659drss3x8bo0yb')+'<hr/>'+Punycode.encode('他們爲什麽不說中文')
|
||
<span class='line'>4240</span> //(rC=Punycode.decode(testC))+'<hr/>'+(rC=Punycode.encode(rC))+'<hr/>'+(testC==rC?'OK':'<b style="color:red">FAILED</b>:<br/>'+testC+'<br/>'+rC)
|
||
<span class='line'>4241</span> );
|
||
<span class='line'>4242</span> */</span><span class="WHIT">
|
||
<span class='line'>4243</span>
|
||
<span class='line'>4244</span>
|
||
<span class='line'>4245</span>
|
||
<span class='line'>4246</span> </span><span class="COMM">/* 一個非常不好的 deal onload 方法。只在onload不具有arguments時有用,應該亦可用setTimeout('~',0)
|
||
<span class='line'>4247</span> where 0:back,1:front
|
||
<span class='line'>4248</span>
|
||
<span class='line'>4249</span> for IE:
|
||
<span class='line'>4250</span> <!--[if IE]><script defer type="text/javascript">
|
||
<span class='line'>4251</span> // onload code
|
||
<span class='line'>4252</span> </script><![endif]-->
|
||
<span class='line'>4253</span>
|
||
<span class='line'>4254</span> c.f. http://www.brothercake.com/ http://simonwillison.net/2004/May/26/addLoadEvent/
|
||
<span class='line'>4255</span> GO1.1 Generic onload by Brothercake
|
||
<span class='line'>4256</span> window.addEventListener,document.addEventListener,typeof window.attachEvent
|
||
<span class='line'>4257</span> c.f. setTimeout('~',0); 不過這不能確定已經load好
|
||
<span class='line'>4258</span> */</span><span class="WHIT">
|
||
<span class='line'>4259</span> </span><span class="COMM">/*
|
||
<span class='line'>4260</span> function addonload(s,where){
|
||
<span class='line'>4261</span> if(!s||typeof window!='object')return 1;
|
||
<span class='line'>4262</span> if(typeof s=='function'){
|
||
<span class='line'>4263</span> s=parseFunction(s);
|
||
<span class='line'>4264</span> if(!s||!s.funcName)return 2;
|
||
<span class='line'>4265</span> s=s.funcName+'()';
|
||
<span class='line'>4266</span> }
|
||
<span class='line'>4267</span> var o=window.onload?typeof window.onload=='string'?window.onload:parseFunction(window.onload).contents:'';
|
||
<span class='line'>4268</span> window.onload=new Function(where?s+';\n'+o:o+';\n'+s);
|
||
<span class='line'>4269</span> }
|
||
<span class='line'>4270</span> */</span><span class="WHIT">
|
||
<span class='line'>4271</span>
|
||
<span class='line'>4272</span>
|
||
<span class='line'>4273</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4274</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4275</span> </span><span class="NAME">DOM_loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4276</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">document.body</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4277</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_.DOM_loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4278</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>4279</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4280</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4281</span>
|
||
<span class='line'>4282</span>
|
||
<span class='line'>4283</span> </span><span class="COMM">/*
|
||
<span class='line'>4284</span> // The DOM ready check for Internet Explorer
|
||
<span class='line'>4285</span> try{document.documentElement.doScroll('left');}
|
||
<span class='line'>4286</span> catch(e){setTimeout(arguments.callee, 50);return;}
|
||
<span class='line'>4287</span>
|
||
<span class='line'>4288</span> */</span><span class="WHIT">
|
||
<span class='line'>4289</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4290</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4291</span> </span><span class="COMM">/**
|
||
<span class='line'>4292</span> * 比較好點的 add onload。
|
||
<span class='line'>4293</span> * 比起 add_listener(),本函數在已經 load 時依然會執行,而 add_listener 因為是用榜定的方法,因此 load 完就不再觸發(?)。
|
||
<span class='line'>4294</span> * 這東西頂多只能擺在 include 的 JS file 中,不能 runtime include。
|
||
<span class='line'>4295</span> * @example
|
||
<span class='line'>4296</span> * CeL.use('net.web');
|
||
<span class='line'>4297</span> * CeL.on_load(function(){sl(1);},'sl(2);');
|
||
<span class='line'>4298</span> * @requires _.add_listener,_.DOM_loaded
|
||
<span class='line'>4299</span> * @see
|
||
<span class='line'>4300</span> * jQuery: $(document).ready(listener);
|
||
<span class='line'>4301</span> * DOMContentLoaded http://webdesign.piipo.com/jquery/jquery_events
|
||
<span class='line'>4302</span> * 可直接參考 SWFObject。
|
||
<span class='line'>4303</span> * TODO:
|
||
<span class='line'>4304</span> * <a href="http://javascript.nwbox.com/IEContentLoaded/" accessdate="2010/6/3 11:15" title="IEContentLoaded - An alternative for DOMContentLoaded on Internet Explorer">IEContentLoaded</a>
|
||
<span class='line'>4305</span> * DOMContentLoaded是firefox下特有的Event, 當所有DOM解析完以後會觸發這個事件。
|
||
<span class='line'>4306</span> * DOMContentLoaded與DOM中的onLoad事件與其相近。但onload要等到所有頁面元素加載完成才會觸發, 包括頁面上的圖片等等。
|
||
<span class='line'>4307</span> * <a href="http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/06/05/jquery-ready-vs-load.aspx" accessdate="2010/6/3 11:17">jQuery ready vs load - 黑暗執行緒</a>
|
||
<span class='line'>4308</span> * $(document).ready(fn)發生在"網頁本身的HTML"載入後就觸發,而$(window).load(fn)則會等到"網頁HTML 標籤中引用的圖檔、內嵌物件(如Flash)、IFrame"等拉哩拉雜的東西都載入後才會觸發。
|
||
<span class='line'>4309</span> * @memberOf CeL.net.web
|
||
<span class='line'>4310</span> */</span><span class="WHIT">
|
||
<span class='line'>4311</span> </span><span class="NAME">on_load</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">on_load</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4312</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.on_load</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">loaded</span><span class="PUNC">=</span><span class="NAME">_.DOM_loaded</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4313</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4314</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">loaded</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4315</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">call</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4316</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>4317</span> </span><span class="WHIT"> </span><span class="NAME">_.add_listener</span><span class="PUNC">(</span><span class="STRN">'load'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4318</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4319</span>
|
||
<span class='line'>4320</span>
|
||
<span class='line'>4321</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4322</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4323</span> </span><span class="COMM">/**
|
||
<span class='line'>4324</span> * bind/add listener. register event control, setup code to run.
|
||
<span class='line'>4325</span> * listener 應該加上 try{}catch{},否則會搞不清楚哪裡出問題。
|
||
<span class='line'>4326</span> * ** 對同樣的 object,事件本身還是會依照 call add_listener() 的順序跑,不會因為 p_first 而改變。
|
||
<span class='line'>4327</span> * ** NOT TESTED!!
|
||
<span class='line'>4328</span> * TODO:
|
||
<span class='line'>4329</span> * removeEventListener,
|
||
<span class='line'>4330</span> * remove_listener(),
|
||
<span class='line'>4331</span> * default 'this'
|
||
<span class='line'>4332</span> * 自訂 event
|
||
<span class='line'>4333</span> *
|
||
<span class='line'>4334</span> * @param {string} type listen to what event type. event name/action
|
||
<span class='line'>4335</span> * @param listener listener function/function array/function string,
|
||
<span class='line'>4336</span> * 須 String 之 recursive function 時可 "(function(){return function f(){f();};})()"
|
||
<span class='line'>4337</span> * function(e){var target=e?e.target:(e=window.event).srcElement;if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false;}
|
||
<span class='line'>4338</span> * @param [target_element] bind/attach to what HTML element
|
||
<span class='line'>4339</span> * @param [p_first] parentNode first
|
||
<span class='line'>4340</span> * @return
|
||
<span class='line'>4341</span> * @since 2010/1/20 23:42:51
|
||
<span class='line'>4342</span> * @see
|
||
<span class='line'>4343</span> * c.f., GEvent.add_listener()
|
||
<span class='line'>4344</span> * @memberOf CeL.net.web
|
||
<span class='line'>4345</span> */</span><span class="WHIT">
|
||
<span class='line'>4346</span> </span><span class="NAME">add_listener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">add_listener</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p_first</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4347</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">listener</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4348</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4349</span>
|
||
<span class='line'>4350</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4351</span> </span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Function</span><span class="PUNC">(</span><span class="STRN">'e'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4352</span>
|
||
<span class='line'>4353</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4354</span> </span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.get_element</span><span class="PUNC">(</span><span class="NAME">target_element</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4355</span>
|
||
<span class='line'>4356</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.add_listener</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">adder</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4357</span>
|
||
<span class='line'>4358</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">p_first</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'bool'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4359</span> </span><span class="WHIT"> </span><span class="NAME">p_first</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">p_first</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">_s.p_first</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">p_first</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4360</span>
|
||
<span class='line'>4361</span> </span><span class="WHIT"> </span><span class="COMM">// 進階功能</span><span class="WHIT">
|
||
<span class='line'>4362</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Object</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4363</span> </span><span class="WHIT"> </span><span class="COMM">// usage: add_listener({unload:Unload});</span><span class="WHIT">
|
||
<span class='line'>4364</span> </span><span class="WHIT"> </span><span class="COMM">// usage: add_listener({load:{true:[function(){sl(1);},'sl(2);']}});</span><span class="WHIT">
|
||
<span class='line'>4365</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4366</span> </span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p_first</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">// ,sl(i+': '+type[i])</span><span class="WHIT">
|
||
<span class='line'>4367</span>
|
||
<span class='line'>4368</span> </span><span class="WHIT"> </span><span class="COMM">// Array or Object</span><span class="WHIT">
|
||
<span class='line'>4369</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Object</span><span class="PUNC">(</span><span class="NAME">listener</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4370</span> </span><span class="WHIT"> </span><span class="COMM">// usage: add_listener('unload',{true:Unload1});</span><span class="WHIT">
|
||
<span class='line'>4371</span> </span><span class="WHIT"> </span><span class="COMM">// usage: add_listener('unload',[Unload1,Unload2]);</span><span class="WHIT">
|
||
<span class='line'>4372</span> </span><span class="WHIT"> </span><span class="COMM">// 因為 Array 會從最小的開始照順序出,所以這邊不再判別是否為 Array。</span><span class="WHIT">
|
||
<span class='line'>4373</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4374</span> </span><span class="WHIT"> </span><span class="COMM">// if(isNaN(f))sl('add_listener: to '+i),_s.p_first=i==='true';//||i==1||i===true</span><span class="WHIT">
|
||
<span class='line'>4375</span> </span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4376</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'true'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'false'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">// ,sl((typeof i)+' ['+i+'] '+_s.p_first)</span><span class="WHIT">
|
||
<span class='line'>4377</span>
|
||
<span class='line'>4378</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Function</span><span class="PUNC">(</span><span class="NAME">listener</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4379</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>4380</span> * 先設定好 native listener adding function
|
||
<span class='line'>4381</span> */</span><span class="WHIT">
|
||
<span class='line'>4382</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">target_element</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4383</span> </span><span class="WHIT"> </span><span class="NAME">adder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">target_element.addEventListener</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4384</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">adder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.global_adder</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">adder</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4385</span> </span><span class="WHIT"> </span><span class="NAME">_s.global_adder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">adder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.get_adder</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4386</span>
|
||
<span class='line'>4387</span> </span><span class="WHIT"> </span><span class="COMM">//$(document).ready(listener);</span><span class="WHIT">
|
||
<span class='line'>4388</span>
|
||
<span class='line'>4389</span> </span><span class="WHIT"> </span><span class="COMM">// 使 listener 能以 this 取得 target_element</span><span class="WHIT">
|
||
<span class='line'>4390</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4391</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4392</span> </span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4393</span>
|
||
<span class='line'>4394</span> </span><span class="WHIT"> </span><span class="COMM">// 正規化 Document Object Model (DOM) Level 3 Events</span><span class="WHIT">
|
||
<span class='line'>4395</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#interface-Event</span><span class="WHIT">
|
||
<span class='line'>4396</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">e.currentTarget</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4397</span> </span><span class="WHIT"> </span><span class="NAME">e.currentTarget</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4398</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">e.target</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4399</span> </span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e.srcElement</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4400</span>
|
||
<span class='line'>4401</span> </span><span class="WHIT"> </span><span class="COMM">// from fix in jQuery</span><span class="WHIT">
|
||
<span class='line'>4402</span>
|
||
<span class='line'>4403</span> </span><span class="WHIT"> </span><span class="COMM">// check if target is a textnode (safari)</span><span class="WHIT">
|
||
<span class='line'>4404</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">e.target.nodeType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4405</span> </span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e.target.parentNode</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4406</span>
|
||
<span class='line'>4407</span> </span><span class="WHIT"> </span><span class="COMM">// Add relatedTarget, if necessary</span><span class="WHIT">
|
||
<span class='line'>4408</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">e.relatedTarget</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">e.fromElement</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4409</span> </span><span class="WHIT"> </span><span class="NAME">e.relatedTarget</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e.fromElement</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">e.toElement</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">e.fromElement</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4410</span>
|
||
<span class='line'>4411</span> </span><span class="WHIT"> </span><span class="COMM">// 取得滑鼠座標</span><span class="WHIT">
|
||
<span class='line'>4412</span> </span><span class="WHIT"> </span><span class="COMM">// http://hartshorne.ca/2006/01/23/javascript_cursor_position/</span><span class="WHIT">
|
||
<span class='line'>4413</span> </span><span class="WHIT"> </span><span class="COMM">// http://hartshorne.ca/2006/01/18/javascript_events/</span><span class="WHIT">
|
||
<span class='line'>4414</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">e.pageX</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">e.clientX</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4415</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.get_window_status.scroll</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4416</span> </span><span class="WHIT"> </span><span class="NAME">e.pageX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e.clientX</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4417</span> </span><span class="WHIT"> </span><span class="NAME">e.pageY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e.clientY</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4418</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4419</span>
|
||
<span class='line'>4420</span> </span><span class="WHIT"> </span><span class="NAME">listener.call</span><span class="PUNC">(</span><span class="NAME">target_element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4421</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4422</span>
|
||
<span class='line'>4423</span> </span><span class="WHIT"> </span><span class="COMM">// 主要核心動作設定之處理</span><span class="WHIT">
|
||
<span class='line'>4424</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: 在 onload 時使 target_element = null</span><span class="WHIT">
|
||
<span class='line'>4425</span> </span><span class="WHIT"> </span><span class="COMM">// sl(type+' ('+((typeof p_first=='undefined'?_s.p_first:p_first?true:false)?'p_first':'run first')+'): '+listener);</span><span class="WHIT">
|
||
<span class='line'>4426</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">adder</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4427</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4428</span> </span><span class="WHIT"> </span><span class="COMM">// 直接用 target_element.addEventListener 不會有問題。</span><span class="WHIT">
|
||
<span class='line'>4429</span> </span><span class="WHIT"> </span><span class="COMM">// .call(window.document): for Chrome 'Illegal invocation' issue</span><span class="WHIT">
|
||
<span class='line'>4430</span> </span><span class="WHIT"> </span><span class="COMM">// http://stackoverflow.com/questions/1007340/javascript-function-aliasing-doesnt-seem-to-work</span><span class="WHIT">
|
||
<span class='line'>4431</span> </span><span class="WHIT"> </span><span class="COMM">// 但 IE9 需要 .call(target_element) 或者別用 .call,否則會得到 "Invalid procedure call or argument"</span><span class="WHIT">
|
||
<span class='line'>4432</span> </span><span class="WHIT"> </span><span class="NAME">adder.call</span><span class="PUNC">(</span><span class="NAME">target_element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p_first</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4433</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4434</span> </span><span class="WHIT"> </span><span class="NAME">adder.call</span><span class="PUNC">(</span><span class="NAME">window.document</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p_first</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4435</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4436</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4437</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4438</span>
|
||
<span class='line'>4439</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">adder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">target_element.attachEvent</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
|
||
<span class='line'>4440</span> </span><span class="WHIT"> </span><span class="COMM">// http://msdn.microsoft.com/en-us/library/ms536343(VS.85).aspx</span><span class="WHIT">
|
||
<span class='line'>4441</span> </span><span class="WHIT"> </span><span class="NAME">adder</span><span class="PUNC">(</span><span class="STRN">'on'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4442</span>
|
||
<span class='line'>4443</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">_s.default_adder</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p_first</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4444</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4445</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4446</span>
|
||
<span class='line'>4447</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4448</span>
|
||
<span class='line'>4449</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4450</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4451</span> </span><span class="COMM">/**
|
||
<span class='line'>4452</span> * useCapture: parentNode first
|
||
<span class='line'>4453</span> * @see
|
||
<span class='line'>4454</span> * <a href="http://www.w3.org/TR/DOM-Level-3-Events/#event-flow" accessdate="2010/4/16 22:40">Document Object Model (DOM) Level 3 Events Specification</a>,
|
||
<span class='line'>4455</span> * <a href="http://www.w3.org/TR/DOM-Level-3-Events/#interface-EventTarget" accessdate="2010/4/16 22:42">Interface EventTarget</a>
|
||
<span class='line'>4456</span> */</span><span class="WHIT">
|
||
<span class='line'>4457</span> </span><span class="NAME">add_listener.p_first</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4458</span>
|
||
<span class='line'>4459</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4460</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4461</span> </span><span class="COMM">/**
|
||
<span class='line'>4462</span> * get (native) global listener adding function.
|
||
<span class='line'>4463</span> * TODO: 只設定一次
|
||
<span class='line'>4464</span> * historical for Netscape Navigator, mozilla: window.captureEvents, document.captureEvents
|
||
<span class='line'>4465</span> */</span><span class="WHIT">
|
||
<span class='line'>4466</span> </span><span class="NAME">add_listener.get_adder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4467</span> </span><span class="WHIT"> </span><span class="COMM">/**
|
||
<span class='line'>4468</span> * moz (gecko), safari 1.2, ow5b6.1, konqueror, W3C standard: window.addEventListener
|
||
<span class='line'>4469</span> * @ignore
|
||
<span class='line'>4470</span> * @see
|
||
<span class='line'>4471</span> * <a href="https://developer.mozilla.org/en/DOM/element.addEventListener" accessdate="2010/4/16 22:35">element.addEventListener - MDC</a>
|
||
<span class='line'>4472</span> * <a href="http://simonwillison.net/2004/May/26/addLoadEvent/" accessdate="2010/4/16 22:36">Executing JavaScript on page load</a>
|
||
<span class='line'>4473</span> */</span><span class="WHIT">
|
||
<span class='line'>4474</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">window.addEventListener</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
|
||
<span class='line'>4475</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>4476</span> * opera 7.50, ie5.0w, ie5.5w, ie6w: window.attachEvent
|
||
<span class='line'>4477</span> * opera 7.50: document.attachEvent
|
||
<span class='line'>4478</span> */</span><span class="WHIT">
|
||
<span class='line'>4479</span> </span><span class="WHIT"> </span><span class="NAME">window.attachEvent</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4480</span> </span><span class="WHIT"> </span><span class="NAME">window.attachEvent</span><span class="PUNC">(</span><span class="STRN">'on'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4481</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
|
||
<span class='line'>4482</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>4483</span> * MSN/OSX, opera 7.50, safari 1.2, ow5b6.1: document.addEventListener
|
||
<span class='line'>4484</span> */</span><span class="WHIT">
|
||
<span class='line'>4485</span> </span><span class="WHIT"> </span><span class="NAME">document.addEventListener</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
|
||
<span class='line'>4486</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>4487</span> * ie5m, MSN/OSX, ie5.0w, ie5.5w ie6w: document.onreadystatechange
|
||
<span class='line'>4488</span> */</span><span class="WHIT">
|
||
<span class='line'>4489</span> </span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4490</span>
|
||
<span class='line'>4491</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4492</span>
|
||
<span class='line'>4493</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4494</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4495</span> </span><span class="COMM">/**
|
||
<span class='line'>4496</span> * 含括其他情況。
|
||
<span class='line'>4497</span> * all: window.onload.
|
||
<span class='line'>4498</span> * TODO: use queue
|
||
<span class='line'>4499</span> * @param type listen to what event type
|
||
<span class='line'>4500</span> * @param listener listener function/function array
|
||
<span class='line'>4501</span> * @param [p_first] parentNode first
|
||
<span class='line'>4502</span> * @param [target_element] bind/attach to what HTML element
|
||
<span class='line'>4503</span> * @return
|
||
<span class='line'>4504</span> * @see
|
||
<span class='line'>4505</span> * http://blog.othree.net/log/2007/02/06/third-argument-of-addeventlistener/
|
||
<span class='line'>4506</span> */</span><span class="WHIT">
|
||
<span class='line'>4507</span> </span><span class="NAME">add_listener.default_adder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p_first</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4508</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">target_element</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4509</span> </span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4510</span>
|
||
<span class='line'>4511</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">old</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="PUNC">[</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'on'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4512</span>
|
||
<span class='line'>4513</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">target_element</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
|
||
<span class='line'>4514</span> </span><span class="WHIT"> </span><span class="NAME">old</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
|
||
<span class='line'>4515</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: typeof old==='string'</span><span class="WHIT">
|
||
<span class='line'>4516</span> </span><span class="WHIT"> </span><span class="NAME">p_first</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4517</span> </span><span class="WHIT"> </span><span class="NAME">old.call</span><span class="PUNC">(</span><span class="NAME">target_element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4518</span> </span><span class="WHIT"> </span><span class="NAME">listener.call</span><span class="PUNC">(</span><span class="NAME">target_element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4519</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4520</span> </span><span class="WHIT"> </span><span class="NAME">listener.call</span><span class="PUNC">(</span><span class="NAME">target_element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4521</span> </span><span class="WHIT"> </span><span class="NAME">old.call</span><span class="PUNC">(</span><span class="NAME">target_element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4522</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4523</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
|
||
<span class='line'>4524</span> </span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT">
|
||
<span class='line'>4525</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4526</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4527</span>
|
||
<span class='line'>4528</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4529</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4530</span> </span><span class="COMM">/**
|
||
<span class='line'>4531</span> * TODO:
|
||
<span class='line'>4532</span> * listener list.
|
||
<span class='line'>4533</span> * 當無法執行 DOM 操作時(尚未載入、版本太舊不提供支援等)以此為主。
|
||
<span class='line'>4534</span> * add_listener.list[node][event type]=[listener list]
|
||
<span class='line'>4535</span> */</span><span class="WHIT">
|
||
<span class='line'>4536</span> </span><span class="NAME">add_listener.list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4537</span>
|
||
<span class='line'>4538</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4539</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4540</span> </span><span class="COMM">/**
|
||
<span class='line'>4541</span> * TODO:
|
||
<span class='line'>4542</span> * 觸發函數.
|
||
<span class='line'>4543</span> * 當無法執行 DOM 操作時(尚未載入、版本太舊不提供支援等)以此為主。
|
||
<span class='line'>4544</span> * add_listener.list[type]=[listener list]
|
||
<span class='line'>4545</span> */</span><span class="WHIT">
|
||
<span class='line'>4546</span> </span><span class="NAME">add_listener.list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4547</span>
|
||
<span class='line'>4548</span>
|
||
<span class='line'>4549</span>
|
||
<span class='line'>4550</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4551</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4552</span> </span><span class="COMM">/**
|
||
<span class='line'>4553</span> * 阻止 JavaScript 事件冒泡傳遞,使 event 不傳到 parentNode。
|
||
<span class='line'>4554</span> * @param e event handle
|
||
<span class='line'>4555</span> * @param c cancel bubble
|
||
<span class='line'>4556</span> * @see
|
||
<span class='line'>4557</span> * http://www.jb51.net/html/200705/23/9858.htm
|
||
<span class='line'>4558</span> * @memberOf CeL.net.web
|
||
<span class='line'>4559</span> */</span><span class="WHIT">
|
||
<span class='line'>4560</span> </span><span class="NAME">stop_event</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4561</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4562</span> </span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4563</span>
|
||
<span class='line'>4564</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">e.preventDefault</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4565</span> </span><span class="WHIT"> </span><span class="NAME">e.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4566</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>4567</span> </span><span class="WHIT"> </span><span class="NAME">e.returnValue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4568</span>
|
||
<span class='line'>4569</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4570</span> </span><span class="WHIT"> </span><span class="COMM">// cancelBubble 在IE下有效,stopPropagation 在 Firefox 下有效。</span><span class="WHIT">
|
||
<span class='line'>4571</span> </span><span class="WHIT"> </span><span class="COMM">// 停止冒泡,事件不會上升,我們就可以獲取精確的鼠標進入元素。 http://realazy.org/lab/bubble/</span><span class="WHIT">
|
||
<span class='line'>4572</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">e.stopPropagation</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4573</span> </span><span class="WHIT"> </span><span class="NAME">e.stopPropagation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4574</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>4575</span> </span><span class="WHIT"> </span><span class="NAME">e.cancelBubble</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4576</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4577</span>
|
||
<span class='line'>4578</span>
|
||
<span class='line'>4579</span>
|
||
<span class='line'>4580</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4581</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4582</span> </span><span class="COMM">/**
|
||
<span class='line'>4583</span> * 獲取頁面上選中的選取區資訊。
|
||
<span class='line'>4584</span> *
|
||
<span class='line'>4585</span> * @example
|
||
<span class='line'>4586</span> * CeL.add_listener('mouseup', function (e) { var s = CeL.get_selection(); if (s && s.text) CeL.debug('select @' + this + '(' + s.element + ')' + ' (' + s.left + '+' + s.width + ',' + s.top + '+' + s.height + '), (' + e.pageX + ',' + e.pageY + '): ' + s.text); }, target_element);
|
||
<span class='line'>4587</span> *
|
||
<span class='line'>4588</span> * @param {Number} [index] TODO: 第幾選取區, default: all or 0 if there's only ONE/ZERO selection
|
||
<span class='line'>4589</span> * @return {Object}
|
||
<span class='line'>4590</span> * {
|
||
<span class='line'>4591</span> * left: {Number} in px,
|
||
<span class='line'>4592</span> * top: {Number} in px,
|
||
<span class='line'>4593</span> * width: {Number} in px,
|
||
<span class='line'>4594</span> * height: {Number} in px,
|
||
<span class='line'>4595</span> * text: {String} 文字,
|
||
<span class='line'>4596</span> * element: {HTMLElement},
|
||
<span class='line'>4597</span> * selection: selection object (browser dependent)
|
||
<span class='line'>4598</span> * }
|
||
<span class='line'>4599</span> * @return {undefined} error.
|
||
<span class='line'>4600</span> * @see
|
||
<span class='line'>4601</span> * http://plugins.jquery.com/project/selectedText,
|
||
<span class='line'>4602</span> * Gecko: https://developer.mozilla.org/en/DOM/Selection
|
||
<span class='line'>4603</span> * @memberOf CeL.net.web
|
||
<span class='line'>4604</span> */</span><span class="WHIT">
|
||
<span class='line'>4605</span> </span><span class="NAME">get_selection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4606</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4607</span>
|
||
<span class='line'>4608</span>
|
||
<span class='line'>4609</span> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4610</span>
|
||
<span class='line'>4611</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">window.getSelection</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4612</span> </span><span class="WHIT"> </span><span class="NAME">_.get_selection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4613</span> </span><span class="WHIT"> </span><span class="COMM">// Firefox, Opera, Safari</span><span class="WHIT">
|
||
<span class='line'>4614</span> </span><span class="WHIT"> </span><span class="COMM">// http://help.dottoro.com/ljcvonpc.php</span><span class="WHIT">
|
||
<span class='line'>4615</span> </span><span class="WHIT"> </span><span class="COMM">// Although the selection object is supported by Opera, it is only partially suppported. The window.getSelection method provides more complex functionality in that browser.</span><span class="WHIT">
|
||
<span class='line'>4616</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.dotvoid.com/2001/03/using-the-range-object-in-mozilla/</span><span class="WHIT">
|
||
<span class='line'>4617</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.activeElement</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4618</span> </span><span class="WHIT"> </span><span class="COMM">// 在 Opera 中,e 為 [object Text]</span><span class="WHIT">
|
||
<span class='line'>4619</span> </span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">e.tagName</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">e.tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4620</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.getSelection</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4621</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">s.rangeCount</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4622</span> </span><span class="WHIT"> </span><span class="COMM">// 點擊而無選擇?</span><span class="WHIT">
|
||
<span class='line'>4623</span> </span><span class="WHIT"> </span><span class="COMM">// 最起碼回應能得知的資訊</span><span class="WHIT">
|
||
<span class='line'>4624</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4625</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4626</span> </span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4627</span> </span><span class="WHIT"> </span><span class="NAME">selection</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT">
|
||
<span class='line'>4628</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4629</span>
|
||
<span class='line'>4630</span> </span><span class="WHIT"> </span><span class="COMM">// 超出範圍可能會 Error: INDEX_SIZE_ERR: DOM Exception 1</span><span class="WHIT">
|
||
<span class='line'>4631</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s.getRangeAt</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC"><=</span><span class="WHIT"> </span><span class="NAME">index</span><span class="WHIT">
|
||
<span class='line'>4632</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">index</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">s.rangeCount</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">index</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4633</span>
|
||
<span class='line'>4634</span> </span><span class="WHIT"> </span><span class="COMM">// Gecko: https://developer.mozilla.org/en/DOM/range</span><span class="WHIT">
|
||
<span class='line'>4635</span> </span><span class="WHIT"> </span><span class="COMM">// 除了 Gecko 外,都有 s.getBoundingClientRect 但無 s.endContainer.getBoundingClientRect。</span><span class="WHIT">
|
||
<span class='line'>4636</span> </span><span class="WHIT"> </span><span class="COMM">// Gecko 可以取 mouse event 作 workaround</span><span class="WHIT">
|
||
<span class='line'>4637</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug(s.endContainer.parentNode);</span><span class="WHIT">
|
||
<span class='line'>4638</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">offset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.get_node_offset</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>4639</span> </span><span class="WHIT"> </span><span class="NAME">s.getBoundingClientRect</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s.endContainer.parentNode</span><span class="WHIT">
|
||
<span class='line'>4640</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4641</span>
|
||
<span class='line'>4642</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4643</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: offset</span><span class="WHIT">
|
||
<span class='line'>4644</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: do test</span><span class="WHIT">
|
||
<span class='line'>4645</span> </span><span class="WHIT"> </span><span class="COMM">//s.startOffset,</span><span class="WHIT">
|
||
<span class='line'>4646</span> </span><span class="WHIT"> </span><span class="NAME">left</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">offset.left</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4647</span> </span><span class="WHIT"> </span><span class="NAME">top</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">offset.top</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4648</span> </span><span class="WHIT"> </span><span class="COMM">//s.endOffset,</span><span class="WHIT">
|
||
<span class='line'>4649</span> </span><span class="WHIT"> </span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">offset.width</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4650</span> </span><span class="WHIT"> </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">offset.height</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4651</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'textarea'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'input'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'select'</span><span class="WHIT">
|
||
<span class='line'>4652</span> </span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">e.value.substring</span><span class="PUNC">(</span><span class="NAME">e.selectionStart</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e.selectionEnd</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4653</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s.toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4654</span> </span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="COMM">//s.endContainer,</span><span class="WHIT">
|
||
<span class='line'>4655</span> </span><span class="WHIT"> </span><span class="NAME">selection</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT">
|
||
<span class='line'>4656</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4657</span> </span><span class="WHIT"> </span><span class="WHIT">
|
||
<span class='line'>4658</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4659</span>
|
||
<span class='line'>4660</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">document.selection</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">document.selection.createRange</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4661</span> </span><span class="WHIT"> </span><span class="COMM">// Internet Explorer</span><span class="WHIT">
|
||
<span class='line'>4662</span> </span><span class="WHIT"> </span><span class="COMM">// http://msdn.microsoft.com/en-us/library/ms534692%28VS.85%29.aspx</span><span class="WHIT">
|
||
<span class='line'>4663</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: http://help.dottoro.com/ljefwsqm.php</span><span class="WHIT">
|
||
<span class='line'>4664</span>
|
||
<span class='line'>4665</span> </span><span class="WHIT"> </span><span class="NAME">document.execCommand</span><span class="WHIT">
|
||
<span class='line'>4666</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">document.execCommand</span><span class="PUNC">(</span><span class="STRN">'MultipleSelection'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4667</span>
|
||
<span class='line'>4668</span> </span><span class="WHIT"> </span><span class="NAME">_.get_selection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">input</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4669</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.selection.createRange</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4670</span>
|
||
<span class='line'>4671</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'None'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4672</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: do test</span><span class="WHIT">
|
||
<span class='line'>4673</span> </span><span class="WHIT"> </span><span class="COMM">// http://msdn.microsoft.com/en-us/library/ms535872%28v=VS.85%29.aspx</span><span class="WHIT">
|
||
<span class='line'>4674</span> </span><span class="WHIT"> </span><span class="COMM">// s.offsetLeft, s.offsetTop 較不準</span><span class="WHIT">
|
||
<span class='line'>4675</span> </span><span class="WHIT"> </span><span class="NAME">left</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s.boundingLeft</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4676</span> </span><span class="WHIT"> </span><span class="NAME">top</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s.boundingTop</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4677</span> </span><span class="WHIT"> </span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s.boundingWidth</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4678</span> </span><span class="WHIT"> </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s.boundingHeight</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4679</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s.text</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4680</span> </span><span class="WHIT"> </span><span class="COMM">// TODO</span><span class="WHIT">
|
||
<span class='line'>4681</span> </span><span class="WHIT"> </span><span class="COMM">//element: null,</span><span class="WHIT">
|
||
<span class='line'>4682</span> </span><span class="WHIT"> </span><span class="NAME">selection</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT">
|
||
<span class='line'>4683</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4684</span>
|
||
<span class='line'>4685</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4686</span>
|
||
<span class='line'>4687</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">document.getSelection</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4688</span> </span><span class="WHIT"> </span><span class="NAME">_.get_selection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">input</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4689</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4690</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: get offset from mouse location</span><span class="WHIT">
|
||
<span class='line'>4691</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document.getSelection</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4692</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4693</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4694</span>
|
||
<span class='line'>4695</span> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4696</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: handle exception</span><span class="WHIT">
|
||
<span class='line'>4697</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4698</span>
|
||
<span class='line'>4699</span> </span><span class="COMM">/*
|
||
<span class='line'>4700</span> ↑HTML only -------------------------------------------------------
|
||
<span class='line'>4701</span> */</span><span class="WHIT">
|
||
<span class='line'>4702</span>
|
||
<span class='line'>4703</span>
|
||
<span class='line'>4704</span>
|
||
<span class='line'>4705</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">is_IE</span><span class="PUNC">=</span><span class="COMM">/*@cc_on!@*/</span><span class="PUNC">!</span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4706</span>
|
||
<span class='line'>4707</span> </span><span class="COMM">/*
|
||
<span class='line'>4708</span> http://www.real-blog.com/programming/259
|
||
<span class='line'>4709</span> http://fettig.net/weblog/2006/10/09/detecting-ie7-in-javascript/
|
||
<span class='line'>4710</span>
|
||
<span class='line'>4711</span> if(typeof window.XMLHttpRequest!="undefined"){
|
||
<span class='line'>4712</span> // IE 7, mozilla, safari, opera 9
|
||
<span class='line'>4713</span> }else{
|
||
<span class='line'>4714</span> // IE6, older browsers
|
||
<span class='line'>4715</span> }
|
||
<span class='line'>4716</span> */</span><span class="WHIT">
|
||
<span class='line'>4717</span>
|
||
<span class='line'>4718</span>
|
||
<span class='line'>4719</span>
|
||
<span class='line'>4720</span>
|
||
<span class='line'>4721</span>
|
||
<span class='line'>4722</span> </span><span class="COMM">/*
|
||
<span class='line'>4723</span> http://www.cnlei.org/blog/article.asp?id=337
|
||
<span class='line'>4724</span> 在IE下:
|
||
<span class='line'>4725</span> >> 支持keyCode
|
||
<span class='line'>4726</span> >> 不支持which和charCode,二者值為 undefined
|
||
<span class='line'>4727</span>
|
||
<span class='line'>4728</span> 在Firefox下:
|
||
<span class='line'>4729</span> >> 支持keyCode,除功能鍵外,其他鍵值始終為 0
|
||
<span class='line'>4730</span> >> 支持which和charCode,二者的值相同
|
||
<span class='line'>4731</span>
|
||
<span class='line'>4732</span> 在Opera下:
|
||
<span class='line'>4733</span> >> 支持keyCode和which,二者的值相同
|
||
<span class='line'>4734</span> >> 不支持charCode,值為 undefined
|
||
<span class='line'>4735</span>
|
||
<span class='line'>4736</span> */</span><span class="WHIT">
|
||
<span class='line'>4737</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4738</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4739</span> </span><span class="COMM">/**
|
||
<span class='line'>4740</span> * 條碼器(Barcode Scanner)/雷射讀碼器的輸入可用 onkeypress 取得
|
||
<span class='line'>4741</span> * @param callback callback
|
||
<span class='line'>4742</span> * @return
|
||
<span class='line'>4743</span> * @since 2008/8/26 23:10
|
||
<span class='line'>4744</span> * @example
|
||
<span class='line'>4745</span> * // usage:
|
||
<span class='line'>4746</span> * deal_barcode(function(t) {
|
||
<span class='line'>4747</span> * if (t.length > 9 && t.length < 17)
|
||
<span class='line'>4748</span> * document.getElementById("p").value = t,
|
||
<span class='line'>4749</span> * document.forms[0].submit();
|
||
<span class='line'>4750</span> * });
|
||
<span class='line'>4751</span> * @memberOf CeL.net.web
|
||
<span class='line'>4752</span> */</span><span class="WHIT">
|
||
<span class='line'>4753</span> </span><span class="NAME">deal_barcode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4754</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">lt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">st</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4755</span> </span><span class="WHIT"> </span><span class="NAME">document.onkeypress</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4756</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4757</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>4758</span> </span><span class="WHIT"> </span><span class="COMM">// 前後不超過 800,</span><span class="WHIT">
|
||
<span class='line'>4759</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">st</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">800</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
|
||
<span class='line'>4760</span> </span><span class="WHIT"> </span><span class="COMM">// 與上一輸入不超過 90</span><span class="WHIT">
|
||
<span class='line'>4761</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">lt</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">90</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4762</span> </span><span class="WHIT"> </span><span class="NAME">st</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4763</span> </span><span class="WHIT"> </span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4764</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4765</span> </span><span class="WHIT"> </span><span class="NAME">lt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4766</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window.event</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4767</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c.keyCode</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">c.which</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">c.charCode</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4768</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">32</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">120</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4769</span> </span><span class="WHIT"> </span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">String.fromCharCode</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4770</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">13</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4771</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4772</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4773</span>
|
||
<span class='line'>4774</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4775</span>
|
||
<span class='line'>4776</span>
|
||
<span class='line'>4777</span>
|
||
<span class='line'>4778</span> </span><span class="COMM">// https://addons.mozilla.org/js/search-plugin.js</span><span class="WHIT">
|
||
<span class='line'>4779</span> </span><span class="COMM">// TODO, & Chrome</span><span class="WHIT">
|
||
<span class='line'>4780</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">addEngine</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4781</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4782</span>
|
||
<span class='line'>4783</span>
|
||
<span class='line'>4784</span>
|
||
<span class='line'>4785</span> </span><span class="COMM">// for string encoding -------------------------------------------------------</span><span class="WHIT">
|
||
<span class='line'>4786</span> </span><span class="COMM">// 將HTML:&#ddd; → Unicode text</span><span class="WHIT">
|
||
<span class='line'>4787</span> </span><span class="COMM">// 此函數只能用一次,為輸入資料良好之情況下使用。完整版: HTML_to_Unicode</span><span class="WHIT">
|
||
<span class='line'>4788</span> </span><span class="COMM">//turnUnicode[generateCode.dLK]='setTool,getText';</span><span class="WHIT">
|
||
<span class='line'>4789</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">turnUnicode</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4790</span> </span><span class="WHIT"> </span><span class="COMM">//s=s.replace(/&#(\d+);/g,String.fromCharCode("$1"));//行不通</span><span class="WHIT">
|
||
<span class='line'>4791</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">this.valueOf</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/ /g</span><span class="PUNC">,</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/</g</span><span class="PUNC">,</span><span class="STRN">'<'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/>/g</span><span class="PUNC">,</span><span class="STRN">'>'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/"/g</span><span class="PUNC">,</span><span class="STRN">'"'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/'/g</span><span class="PUNC">,</span><span class="STRN">"'"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4792</span>
|
||
<span class='line'>4793</span> </span><span class="WHIT"> </span><span class="COMM">//舊版本</span><span class="WHIT">
|
||
<span class='line'>4794</span> </span><span class="WHIT"> </span><span class="COMM">//if(m=s.match(/&#(\d{2,7});/g))for(var i=0;i<m.length;i++)s=s.replace(m[i],String.fromCharCode(parseInt(m[i].slice(2,-1))));</span><span class="WHIT">
|
||
<span class='line'>4795</span>
|
||
<span class='line'>4796</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">s</span><span class="WHIT"> </span><span class="COMM">//.replace(/&#(0*38|[xX]0*26);/g,"\0") //預防&:&=&</span><span class="WHIT">
|
||
<span class='line'>4797</span> </span><span class="WHIT"> </span><span class="COMM">// .replace(/�*38;([^\d;]|$)/g,"\0$1").replace(/&#[xX]0*26;?([^a-fA-F\d;]|$)/g,"\0$1")</span><span class="WHIT">
|
||
<span class='line'>4798</span>
|
||
<span class='line'>4799</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/�*(\d{2,7});/g</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="NAME">$1</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">String.fromCharCode</span><span class="PUNC">(</span><span class="NAME">$1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">//JScript 5.5~</span><span class="WHIT">
|
||
<span class='line'>4800</span> </span><span class="WHIT"> </span><span class="COMM">// .replace(/�*(\d{2,7});/g,function($0,$1){return $1>1114111?$0:String.fromCharCode($1);}) //預防error之版本,~10FFFF=1114111</span><span class="WHIT">
|
||
<span class='line'>4801</span>
|
||
<span class='line'>4802</span> </span><span class="WHIT"> </span><span class="COMM">//if(mode=='x')</span><span class="WHIT">
|
||
<span class='line'>4803</span> </span><span class="WHIT"> </span><span class="COMM">//.replace(/&#[xX]0*([a-fA-F\d]{2,6});/g,function($0,$1){return String.fromCharCode(parseInt($1,16));}) //$x111;之版本</span><span class="WHIT">
|
||
<span class='line'>4804</span> </span><span class="WHIT"> </span><span class="COMM">// .replace(/&#[xX]0*([a-fA-F\d]{2,6});/g,function($0,$1){var t=parseInt($1,16);return t>1114111?$0:String.fromCharCode(t);})</span><span class="WHIT">
|
||
<span class='line'>4805</span>
|
||
<span class='line'>4806</span> </span><span class="WHIT"> </span><span class="COMM">//.replace(/\0/g,"&") //預防&回復</span><span class="WHIT">
|
||
<span class='line'>4807</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4808</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">s.gText</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4809</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4810</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4811</span> </span><span class="COMM">// 可適用perl: HTML::Entities::encode_entities()</span><span class="WHIT">
|
||
<span class='line'>4812</span> </span><span class="COMM">// 需要escape的: [\<\>\"\'\%\;\)\(\&\+], tr/A-Za-z0-9\ //dc http://www.cert.org/tech_tips/malicious_code_mitigation.html</span><span class="WHIT">
|
||
<span class='line'>4813</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4814</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4815</span> </span><span class="COMM">/**
|
||
<span class='line'>4816</span> * Translate HTML code to Unicode text
|
||
<span class='line'>4817</span> * @param {String} HTML HTML code
|
||
<span class='line'>4818</span> * @param {Boolean} only_digital
|
||
<span class='line'>4819</span> * @returns
|
||
<span class='line'>4820</span> * @memberOf CeL.net.web
|
||
<span class='line'>4821</span> */</span><span class="WHIT">
|
||
<span class='line'>4822</span> </span><span class="NAME">HTML_to_Unicode</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">HTML</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">only_digital</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4823</span> </span><span class="WHIT"> </span><span class="COMM">// 使用\0可能會 Warning: non-octal digit in an escape sequence that doesn't match a back-reference</span><span class="WHIT">
|
||
<span class='line'>4824</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">HTML.valueOf</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4825</span>
|
||
<span class='line'>4826</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">only_digital</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4827</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT">
|
||
<span class='line'>4828</span> </span><span class="WHIT"> </span><span class="COMM">// 自動clip null character</span><span class="WHIT">
|
||
<span class='line'>4829</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\0\0/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4830</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/ /g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4831</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/</g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'<'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4832</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/>/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4833</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/"/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'"'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4834</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/'/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"'"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4835</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/®/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"®"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4836</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4837</span>
|
||
<span class='line'>4838</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT">
|
||
<span class='line'>4839</span> </span><span class="WHIT"> </span><span class="COMM">//預防&:&=&</span><span class="WHIT">
|
||
<span class='line'>4840</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&#(0*38|[xX]0*26);/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"\0\0"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4841</span> </span><span class="WHIT"> </span><span class="COMM">//預防error之版本,~10FFFF=1114111</span><span class="WHIT">
|
||
<span class='line'>4842</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/�*(\d{2,7});/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1114111</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">$0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">String.fromCharCode</span><span class="PUNC">(</span><span class="NAME">$1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4843</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&#[xX]0*([a-fA-F\d]{2,6});/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">$1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">16</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1114111</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">$0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">String.fromCharCode</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4844</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4845</span>
|
||
<span class='line'>4846</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">only_digital</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4847</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT">
|
||
<span class='line'>4848</span> </span><span class="WHIT"> </span><span class="COMM">//預防&回復</span><span class="WHIT">
|
||
<span class='line'>4849</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\0\0/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4850</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'&'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4851</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4852</span>
|
||
<span class='line'>4853</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4854</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4855</span>
|
||
<span class='line'>4856</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4857</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4858</span> </span><span class="COMM">/**
|
||
<span class='line'>4859</span> * Translate Unicode text to HTML
|
||
<span class='line'>4860</span> * @param {String} text Unicode text
|
||
<span class='line'>4861</span> * @param mode mode='x':&#xhhh;
|
||
<span class='line'>4862</span> * @return {String} HTML
|
||
<span class='line'>4863</span> * @memberOf CeL.net.web
|
||
<span class='line'>4864</span> */</span><span class="WHIT">
|
||
<span class='line'>4865</span> </span><span class="NAME">to_HTML</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">text</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4866</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">html</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4867</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">text.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4868</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text.charCodeAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">html</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&#'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'x'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'x'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT">
|
||
<span class='line'>4869</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">toString</span><span class="PUNC">(</span><span class="NUMB">16</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4870</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">html</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4871</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4872</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4873</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4874</span> </span><span class="COMM">/**
|
||
<span class='line'>4875</span> * Translate Unicode text to HTML code
|
||
<span class='line'>4876</span> * @param text Unicode text
|
||
<span class='line'>4877</span> * @param flags flags, f&1!=0: turn \t, (f&2)==0: \n→<br/>, f==4: to quoted
|
||
<span class='line'>4878</span> * @param ignore_tags e.g., {object:{src:/^https?:\/\//},img:{src:/^https?:\/\//},a:{href:/^https?:\/\//}}
|
||
<span class='line'>4879</span> * @return
|
||
<span class='line'>4880</span> * @memberOf CeL.net.web
|
||
<span class='line'>4881</span> */</span><span class="WHIT">
|
||
<span class='line'>4882</span> </span><span class="NAME">Unicode_to_HTML</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">text</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">flags</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ignore_tags</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4883</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">text</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4884</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'&'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4885</span> </span><span class="WHIT"> </span><span class="COMM">// 就是會出現這奇怪情況。</span><span class="WHIT">
|
||
<span class='line'>4886</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&amp;/gi</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'&'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4887</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/>/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4888</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/"/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'"'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4889</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4890</span>
|
||
<span class='line'>4891</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ignore_tags</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4892</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text.replace</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>4893</span> </span><span class="WHIT"> </span><span class="REGX">/<([^>]+)>/g</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>4894</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4895</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">$1</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ignore_tags</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4896</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'<'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4897</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$1.split</span><span class="PUNC">(</span><span class="REGX">/ /</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s.length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ignore_tags</span><span class="PUNC">[</span><span class="NAME">$1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4898</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4899</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/^([^=]+)(.+?)/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4900</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4901</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">library_namespace.is_type</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>4902</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'RegExp'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4903</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">library_namespace</span><span class="WHIT">
|
||
<span class='line'>4904</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">is_Function</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4905</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4906</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4907</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s.join</span><span class="PUNC">(</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4908</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4909</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4910</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>4911</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text.replace</span><span class="PUNC">(</span><span class="REGX">/</g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'<'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4912</span>
|
||
<span class='line'>4913</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flags</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">text</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4914</span>
|
||
<span class='line'>4915</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text.replace</span><span class="PUNC">(</span><span class="REGX">/ /g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4916</span>
|
||
<span class='line'>4917</span> </span><span class="WHIT"> </span><span class="COMM">//if(!f)f=0;</span><span class="WHIT">
|
||
<span class='line'>4918</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flags</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4919</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text.replace</span><span class="PUNC">(</span><span class="REGX">/ /g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'<span style="margin-left:3em;"> </span>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4920</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">flags</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4921</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text.replace</span><span class="PUNC">(</span><span class="REGX">/(\r?\n)/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'<br/>$1'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//+'<br/>\n';</span><span class="WHIT">
|
||
<span class='line'>4922</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">text</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4923</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4924</span>
|
||
<span class='line'>4925</span> </span><span class="COMM">// Ucode:\uhhhh及\xhh之意</span><span class="WHIT">
|
||
<span class='line'>4926</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">UcodeToTxt</span><span class="PUNC">(</span><span class="NAME">U</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4927</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">T</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">U.replace</span><span class="PUNC">(</span><span class="REGX">/\\\\|\\u005[cC]|\\x5[cC]|\\134/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"\0"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4928</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>4929</span> //way 1
|
||
<span class='line'>4930</span> .replace(/\\u([a-fA-F\d]{4})/g,function($0,$1){return String.fromCharCode(parseInt($1,16));})
|
||
<span class='line'>4931</span> .replace(/\\x([a-fA-F\d]{2})/g,function($0,$1){return String.fromCharCode(parseInt($1,16));})
|
||
<span class='line'>4932</span> .replace(/\\([0-7]{1,3})/g,function($0,$1){return String.fromCharCode(parseInt($1,16));})
|
||
<span class='line'>4933</span> //way 2
|
||
<span class='line'>4934</span> .replace(/\\(u[a-fA-F\d]{4}|x[a-fA-F\d]{2})/g,function($0,$1){return String.fromCharCode(parseInt($1.substr(1),16));})
|
||
<span class='line'>4935</span> .replace(/\\([0-7]{1,3})/g,function($0,$1){return String.fromCharCode(parseInt($1,16));})
|
||
<span class='line'>4936</span> */</span><span class="WHIT">
|
||
<span class='line'>4937</span> </span><span class="WHIT"> </span><span class="COMM">//way 3</span><span class="WHIT">
|
||
<span class='line'>4938</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\\(u[a-fA-F\d]{4}|x[a-fA-F\d]{2}|[0-7]{1,3})/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$1.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">String.fromCharCode</span><span class="PUNC">(</span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'u'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'x'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">$1.substr</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">16</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4939</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4940</span>
|
||
<span class='line'>4941</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">T.indexOf</span><span class="PUNC">(</span><span class="STRN">"\\"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4942</span> </span><span class="WHIT"> </span><span class="NAME">T</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T</span><span class="WHIT">
|
||
<span class='line'>4943</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\\t/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"<Tab>"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4944</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\\n/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"<Line Feed>"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4945</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\\v/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"<Vertical Tab>"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4946</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\\f/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"<Form Feed>"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4947</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\\r/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"<Carriage Return>"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4948</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\\(.)/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"$1"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4949</span>
|
||
<span class='line'>4950</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">T.replace</span><span class="PUNC">(</span><span class="REGX">/\0/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"\\"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4951</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4952</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">TxtToUcode</span><span class="PUNC">(</span><span class="NAME">T</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4953</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">U</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4954</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4955</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">T.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4956</span> </span><span class="WHIT"> </span><span class="NAME">U</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T.charCodeAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">T.charAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"\\u0000"</span><span class="PUNC">.</span><span class="NAME">substr</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">6</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.toString</span><span class="PUNC">(</span><span class="NUMB">16</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4957</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">U</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4958</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4959</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">CSSToTxt</span><span class="PUNC">(</span><span class="NAME">C</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4960</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">C.replace</span><span class="PUNC">(</span><span class="REGX">/\\\\|\\0{0,4}5[cC][ \t\r\n\f]?/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"\0"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4961</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\\([a-fA-F\d]{1,6})[ \t\r\n\f]?/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">String.fromCharCode</span><span class="PUNC">(</span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">$1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">16</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4962</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\\(.)/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"$1"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\0/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"\\"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4963</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4964</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">TxtToCSS</span><span class="PUNC">(</span><span class="NAME">T</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4965</span> </span><span class="WHIT"> </span><span class="COMM">// r:radio,sp:separator</span><span class="WHIT">
|
||
<span class='line'>4966</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">C</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">9</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="PUNC">.</span><span class="NAME">x</span><span class="PUNC">(</span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4967</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'\\'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4968</span>
|
||
<span class='line'>4969</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">T.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4970</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T.charCodeAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toString</span><span class="PUNC">(</span><span class="NUMB">16</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4971</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">C</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">p.substr</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//(p&&r>t.length?p.substr(0,r-t.length):''):如果length是0或負值,會傳回空字串。</span><span class="WHIT">
|
||
<span class='line'>4972</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">C.slice</span><span class="PUNC">(</span><span class="NAME">sp.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4973</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>4974</span>
|
||
<span class='line'>4975</span>
|
||
<span class='line'>4976</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>4977</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>4978</span> </span><span class="COMM">/**
|
||
<span class='line'>4979</span> * Translate a query string to a native Object contains key/value pair set.
|
||
<span class='line'>4980</span> * @param {String} query_string query string. default: location.search
|
||
<span class='line'>4981</span> * @param {Object} add_to append to this object
|
||
<span class='line'>4982</span> * @return key/value pairs
|
||
<span class='line'>4983</span> * @type Object
|
||
<span class='line'>4984</span> * @since 2010/6/16 15:18:50
|
||
<span class='line'>4985</span> * @memberOf CeL.net.web
|
||
<span class='line'>4986</span> * @see
|
||
<span class='line'>4987</span> */</span><span class="WHIT">
|
||
<span class='line'>4988</span> </span><span class="NAME">get_query</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">query_string</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">add_to</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4989</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">query_string</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4990</span> </span><span class="WHIT"> </span><span class="NAME">query_string</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window</span><span class="COMM">/* self */</span><span class="PUNC">.</span><span class="NAME">location.search.slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4991</span> </span><span class="WHIT"> </span><span class="COMM">// else if(typeof query_string!=='string')..</span><span class="WHIT">
|
||
<span class='line'>4992</span>
|
||
<span class='line'>4993</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">query_string.replace</span><span class="PUNC">(</span><span class="REGX">/\+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">'&'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">add_to</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4994</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>4995</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4996</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/^([^=]*)=(.*)$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>4997</span> </span><span class="WHIT"> </span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">decodeURIComponent</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4998</span> </span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">decodeURIComponent</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>4999</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5000</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5001</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5002</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>5003</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">push</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5004</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>5005</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5006</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>5007</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">decodeURIComponent</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5008</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>5009</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: handle exception</span><span class="WHIT">
|
||
<span class='line'>5010</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>5011</span>
|
||
<span class='line'>5012</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5013</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5014</span>
|
||
<span class='line'>5015</span>
|
||
<span class='line'>5016</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>5017</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>5018</span> </span><span class="COMM">/**
|
||
<span class='line'>5019</span> * Translate a native Object contains key/value pair set to a query string.
|
||
<span class='line'>5020</span> * TODO
|
||
<span class='line'>5021</span> * @param {Object} query_Object query Object.
|
||
<span class='line'>5022</span> * @return {String} query string
|
||
<span class='line'>5023</span> * @type String
|
||
<span class='line'>5024</span> * @memberOf CeL.net.web
|
||
<span class='line'>5025</span> * @see
|
||
<span class='line'>5026</span> * jQuery.param
|
||
<span class='line'>5027</span> */</span><span class="WHIT">
|
||
<span class='line'>5028</span> </span><span class="NAME">to_query_string</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">query_Object</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>5029</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5030</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5031</span>
|
||
<span class='line'>5032</span> </span><span class="COMM">/* 簡化 HTML (word)
|
||
<span class='line'>5033</span> simplify HTML
|
||
<span class='line'>5034</span> 目標:剩下語意部分,去掉 style。
|
||
<span class='line'>5035</span> TODO:
|
||
<span class='line'>5036</span> 保留 b, em
|
||
<span class='line'>5037</span> */</span><span class="WHIT">
|
||
<span class='line'>5038</span>
|
||
<span class='line'>5039</span> </span><span class="COMM">// 保留 color: return style string to add</span><span class="WHIT">
|
||
<span class='line'>5040</span> </span><span class="COMM">//reduceHTML.keep_color=</span><span class="WHIT">
|
||
<span class='line'>5041</span> </span><span class="NAME">reduceHTML._keep_color</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
|
||
<span class='line'>5042</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>5043</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'black'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5044</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5045</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5046</span> </span><span class="NAME">reduceHTML.file</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">FP</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">enc</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>5047</span> </span><span class="WHIT"> </span><span class="COMM">//sl('reduceHTML [' + FP + ']');</span><span class="WHIT">
|
||
<span class='line'>5048</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">(</span><span class="NAME">FP</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">enc</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">simpleFileAutodetectEncode</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5049</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>5050</span> </span><span class="WHIT"> </span><span class="NAME">err</span><span class="PUNC">(</span><span class="STRN">'Open ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">FP</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'] failed.'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5051</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5052</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>5053</span>
|
||
<span class='line'>5054</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5055</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5056</span>
|
||
<span class='line'>5057</span> </span><span class="WHIT"> </span><span class="NAME">FP</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">FP.replace</span><span class="PUNC">(</span><span class="REGX">/\.s?html?$/i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'.reduced'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5058</span> </span><span class="WHIT"> </span><span class="COMM">//sl('reduceHTML: ' + l + '→' + t.length + ' (' + parseInt(100 * t.length / l) + '%)' + ', save to [<a href="' + encodeURI(FP) + '">' + FP + '</a>].');</span><span class="WHIT">
|
||
<span class='line'>5059</span> </span><span class="WHIT"> </span><span class="NAME">simpleWrite</span><span class="PUNC">(</span><span class="NAME">FP</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'utf-8'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5060</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5061</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">reduceHTML</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>5062</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5063</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5064</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">reduceHTML</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>5065</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">$2</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$1.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>5066</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>5067</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>5068</span> </span><span class="WHIT"> </span><span class="NAME">head</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT">
|
||
<span class='line'>5069</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">$0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5070</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5071</span> </span><span class="WHIT"> </span><span class="COMM">//if(m=t.match(/<!--\[if [^\]]+\]>(.|\n)*?<!\[endif\]-->/))sl(m[0].replace(/</g,'<'));</span><span class="WHIT">
|
||
<span class='line'>5072</span> </span><span class="WHIT"> </span><span class="COMM">//if(m=t.match(/<!\[if !vml\]>((.|\n)*?)<!\[endif\]>/))sl(m[0]);</span><span class="WHIT">
|
||
<span class='line'>5073</span>
|
||
<span class='line'>5074</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT">
|
||
<span class='line'>5075</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/[\s\n]*<(t[dh])([^>]+)>[\s\n]*/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$2.match</span><span class="PUNC">(</span><span class="REGX">/[\s\n](col|row)span=['"]?\d{1,3}['"]?/ig</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'<'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">a.join</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5076</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<\?xml:namespace[^>]+>/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5077</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/[\s\n]*(<\/t[dh]>)[\s\n]*/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5078</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<wbr([^>]*)>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'<br/>'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5079</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<([bh]r)[\s\n]+([^>]*)\/?>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$2.match</span><span class="PUNC">(</span><span class="REGX">/[\s\n;"'][\s\n]*page-break-before[\s\n]*:[\s\n]*([^\s\n;"']+)/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'<'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">' style="page-break-before:'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'"'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5080</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<(span|font|p|div|b|u|i)[\s\n]+([^>]*)>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>5081</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'<'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5082</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>5083</span> </span><span class="WHIT"> </span><span class="COMM">// /Italic/i.test($2)</span><span class="WHIT">
|
||
<span class='line'>5084</span> </span><span class="WHIT"> </span><span class="NAME">$2.indexOf</span><span class="PUNC">(</span><span class="STRN">'Italic'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5085</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'font-style:italic;'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5086</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: <u>, <b></span><span class="WHIT">
|
||
<span class='line'>5087</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_f.keep_color</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$2.match</span><span class="PUNC">(</span><span class="REGX">/[\s\n;"'][\s\n]*color[\s\n]*:[\s\n]*([^\s\n;"']+)/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_f.keep_color</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5088</span> </span><span class="WHIT"> </span><span class="COMM">// 保留 color</span><span class="WHIT">
|
||
<span class='line'>5089</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'color:'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5090</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">' style="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'"'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5091</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5092</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<(tr|table)[\s\n]+([^>]*)>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'<$1>'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5093</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<span>((.|\n)*?)<\/span>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// 不能用 .+|\n ,IE8 sometimes crash</span><span class="WHIT">
|
||
<span class='line'>5094</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<span>((.|\n)*?)<\/span>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// need several times</span><span class="WHIT">
|
||
<span class='line'>5095</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<font>((.|\n)*?)<\/font>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5096</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<([a-z\d]+)>[\s\n]*<\/([a-z\d]+)>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5097</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<([a-z\d]+)>[\s\n]*<\/([a-z\d]+)>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// 2 times</span><span class="WHIT">
|
||
<span class='line'>5098</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<o:p>((.|\n)*?)<\/o:p>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5099</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<st1:[^>]+>((.|\n)*?)<\/st1:[^>]+>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5100</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<!\[if !vml\]>((.|\n)*?)<!\[endif\]>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5101</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<o:SmartTagType [^>]+\/>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5102</span> </span><span class="WHIT"> </span><span class="COMM">/*
|
||
<span class='line'>5103</span> <td>
|
||
<span class='line'>5104</span> <p> </p>
|
||
<span class='line'>5105</span> </td>
|
||
<span class='line'>5106</span> */</span><span class="WHIT">
|
||
<span class='line'>5107</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<(span|p|div|t[dr])([^>]*>)<(span|p)>(([\s\n]+| )*?)<\/(span|p)><\/(span|p|div|t[dr])>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'<$1$2$4</$7>'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5108</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<link rel=(File-List|colorSchemeMapping|themeData|Edit-Time-Data)[^>]+>/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5109</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/^\s*<html[^>]*>(\r?\n)*/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'<html>'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5110</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/(\r?\n)*<body[^>]+>(\r?\n)*/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'<body>'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5111</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/(\r?\n)*<!--\[if [^\]]+\]>(.|\n)*?<!\[endif\]-->(\r?\n)*/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5112</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/(\r?\n)*<style[^>]*>(.|\n)*?<\/style>(\r?\n)*/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5113</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/(\r?\n)*<meta[\s\n][^>]+>(\r?\n)*/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5114</span> </span><span class="WHIT"> </span><span class="WHIT">
|
||
<span class='line'>5115</span> </span><span class="WHIT"> </span><span class="COMM">// from HTML_to_Unicode()</span><span class="WHIT">
|
||
<span class='line'>5116</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/�*(\d{2,7});/ig</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1114111</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">$0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">String.fromCharCode</span><span class="PUNC">(</span><span class="NAME">$1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">//預防error之版本,~10FFFF=1114111</span><span class="WHIT">
|
||
<span class='line'>5117</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/([\s\n]+| )+$|^([\s\n]+| )+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5118</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5119</span>
|
||
<span class='line'>5120</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/<table[\s>\r\n]/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5121</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Has table'),</span><span class="WHIT">
|
||
<span class='line'>5122</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.replace</span><span class="PUNC">(</span><span class="REGX">/<\/head>/i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'<style type="text/css">table,th,td{border:1px solid #888;border-collapse:collapse;}</style></head>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5123</span>
|
||
<span class='line'>5124</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5125</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5126</span>
|
||
<span class='line'>5127</span>
|
||
<span class='line'>5128</span> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>5129</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>5130</span> </span><span class="COMM">/**
|
||
<span class='line'>5131</span> * 將 BIG5 日文假名碼修改為 Unicode 日文假名。
|
||
<span class='line'>5132</span> * @param {String} text Unicode text
|
||
<span class='line'>5133</span> * @return
|
||
<span class='line'>5134</span> * @see
|
||
<span class='line'>5135</span> * from Unicode 補完計畫 jrename.js
|
||
<span class='line'>5136</span> */</span><span class="WHIT">
|
||
<span class='line'>5137</span> </span><span class="NAME">Big5_kana_fix</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">text</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>5138</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">H</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5139</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">text.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5140</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c.charCodeAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>5141</span> </span><span class="WHIT"> </span><span class="COMM">// 某次破解Windows Installer所用的資料</span><span class="WHIT">
|
||
<span class='line'>5142</span> </span><span class="WHIT"> </span><span class="COMM">// ,H+=String.fromCharCode(t>61300?t-48977:t);</span><span class="WHIT">
|
||
<span class='line'>5143</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">H</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">63219</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'ー'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">String.fromCharCode</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>5144</span> </span><span class="WHIT"> </span><span class="COMM">// ひらがな</span><span class="WHIT">
|
||
<span class='line'>5145</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">63223</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC"><=</span><span class="WHIT"> </span><span class="NUMB">63305</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">50870</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
|
||
<span class='line'>5146</span> </span><span class="WHIT"> </span><span class="COMM">// カタカナ</span><span class="WHIT">
|
||
<span class='line'>5147</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">63306</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC"><=</span><span class="WHIT"> </span><span class="NUMB">63391</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">50857</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
|
||
<span class='line'>5148</span> </span><span class="WHIT"> </span><span class="COMM">// text.charAt(i);</span><span class="WHIT">
|
||
<span class='line'>5149</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5150</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">H</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5151</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5152</span>
|
||
<span class='line'>5153</span>
|
||
<span class='line'>5154</span> </span><span class="COMM">// ↑for string encoding -----------------------------------------------</span><span class="WHIT">
|
||
<span class='line'>5155</span>
|
||
<span class='line'>5156</span>
|
||
<span class='line'>5157</span>
|
||
<span class='line'>5158</span>
|
||
<span class='line'>5159</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>5160</span> </span><span class="WHIT"> </span><span class="NAME">CeL.net.web</span><span class="WHIT">
|
||
<span class='line'>5161</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5162</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5163</span>
|
||
<span class='line'>5164</span> </span><span class="COMM">//===================================================</span><span class="WHIT">
|
||
<span class='line'>5165</span>
|
||
<span class='line'>5166</span> </span><span class="NAME">CeL.setup_module</span><span class="PUNC">(</span><span class="NAME">module_name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5167</span>
|
||
<span class='line'>5168</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>5169</span> </span></pre></body></html> |