)*<\/div>/g, '\n');
179 | result = result.replace(/
/g, '');
180 | /* replaces some html entities */
181 | result = result.replace(/ /g, ' ');
182 | result = result.replace(/&/g, '&');
183 | result = result.replace(/</g, '<');
184 | result = result.replace(/>/g, '>');
185 | result = result.replace(/'/g, "'");
186 |
187 | downloadFile(TITLE+".srt",result);
188 |
189 | });
190 |
191 |
192 |
193 | }
194 |
195 |
196 |
197 | // 下面这个函数不是我写的。我之前写的那种下载方法在 Chrome 更新之后失效了。不能指定下载时的文件名。
198 | // 后来搜索了下找到这个解决方案就直接复制过来用了。
199 | // 复制自: http://www.alloyteam.com/2014/01/use-js-file-download/
200 | function downloadFile(fileName, content){
201 | var aLink = document.createElement('a');
202 | var blob = new Blob([content]);
203 | var evt = document.createEvent("HTMLEvents");
204 | evt.initEvent("click", false, false);
205 | aLink.download = fileName;
206 | aLink.href = URL.createObjectURL(blob);
207 | aLink.dispatchEvent(evt);
208 | }
209 |
210 |
211 | // 处理时间. 比如 start="671.33" start="37.64" start="12" start="23.029"
212 | // 我们处理成srt的时间, 比如 00:00:00,090 00:00:08,460 00:10:29,350
213 | function process_time(s){
214 |
215 | s = s.toFixed(3);
216 | // 超棒的函数, 可以把不论是整数还是小数它都给你弄成3位小数形式的数字.
217 | // 举个柚子:
218 | // 671.33 -> 671.330
219 | // 671 -> 671.000
220 | // 注意, 这个函数会四舍五入. 具体可以去读文档
221 |
222 |
223 | var array = s.split('.');
224 | // 把开始时间根据句号分割
225 | // 671.330 会分割成数组: [671, 330]
226 |
227 |
228 | var Hour = 0;
229 | var Minute = 0;
230 | var Second = array[0]; // 671
231 | var MilliSecond = array[1]; // 330
232 | // 先声明一下变量, 待会把这几个拼好就行了。
233 |
234 |
235 |
236 | // 我们来处理秒数. 把"分钟"和"小时"除出来。
237 | if(Second >= 60){
238 |
239 | Minute = Math.floor(Second / 60);
240 | Second = Second - Minute * 60;
241 | // 我们把 秒 拆成 分钟和秒, 比如121秒, 拆成2分钟1秒
242 |
243 | Hour = Math.floor(Minute / 60);
244 | Minute = Minute - Hour * 60;
245 | // 我们把 分钟 拆成 小时和分钟, 比如700分钟, 拆成11小时40分钟
246 |
247 | }
248 |
249 |
250 | // 处理分钟,如果位数不够两位就变成两位,下面两个if语句的作用也是一样。
251 | if (Minute < 10){
252 | Minute = '0' + Minute;
253 | }
254 |
255 | // 处理小时
256 | if (Hour < 10){
257 | Hour = '0' + Hour;
258 | }
259 |
260 | // 处理秒
261 | if (Second < 10){
262 | Second = '0' + Second;
263 | }
264 |
265 | return Hour + ':' + Minute + ':' + Second + ',' + MilliSecond;
266 | }
267 |
--------------------------------------------------------------------------------