Changeset 25491 for lang/javascript/vimperator-plugins
- Timestamp:
- 12/01/08 06:16:56 (6 weeks ago)
- Location:
- lang/javascript/vimperator-plugins
- Files:
-
- 2 modified
-
branches/1.2/multi_requester.js (modified) (7 diffs)
-
trunk/multi_requester.js (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/vimperator-plugins/branches/1.2/multi_requester.js
r25486 r25491 5 5 * @description-ja リクエストの結果をバッファに出力する。 6 6 * @author suVene suvene@zeromemory.info 7 * @version 0.3. 17 * @version 0.3.3 8 8 * @minVersion 1.2 9 9 * @maxVersion 1.2 … … 80 80 srcEncode: 'EUC-JP', 81 81 urlEncode: 'UTF-8' 82 } 82 }, 83 83 ]; 84 84 … … 366 366 return ret; 367 367 }, 368 _createHTMLDocument: function(str, xmlns) { 369 //str = '<html><title>hoge</title><body><span id="resultList">fuga</span></body></html>'; 370 var doc = (new DOMParser).parseFromString( 371 '<root' + (xmlns ? ' xmlns="' + xmlns + '"' : '') + '>' + str + '</root>', 372 'application/xml'); 373 var imported = document.importNode(doc.documentElement, true); 374 var range = document.createRange(); 375 range.selectNodeContents(imported); 376 var fragment = range.extractContents(); 377 range.detach(); 378 var dom = fragment.lastChild; 379 if (dom.tagName == 'parserError' || dom.namespaceURI == 'http://www.mozilla.org/newlayout/xml/parsererror.xml') { 380 $U.log('retry parsing.'); 381 return this._createHTMLDocument2(str); 382 } else { 383 $U.log('return document fragment'); 384 return fragment.firstChild; 385 } 386 }, 387 _createHTMLDocument2: function(str) { 368 _createHTMLDocument: function(str) { 388 369 var htmlFragment = document.implementation.createDocument(null, 'html', null); 389 370 var range = document.createRange(); … … 466 447 // main controller. 467 448 var MultiRequester = { 449 doProcess: false, 450 requestCount: 0, 451 echoList: [], 468 452 name: DataAccess.getCommand(), 469 453 description: 'request, and display to the buffer', 470 454 cmdAction: function(args, bang, count) { 471 455 456 if (MultiRequester.doProcess) return; 457 472 458 var parsedArgs = this.parseArgs(args); 473 459 if (parsedArgs.count == 0) { return; } // do nothing 460 461 MultiRequester.doProcess = true; 462 MultiRequester.requestCount = 0; 463 MultiRequester.echoList = []; 474 464 var siteinfo = parsedArgs.siteinfo; 475 465 for (let i = 0, len = parsedArgs.count; i < len; i++) { … … 506 496 req.addEventListener('onFailure', $U.bind(this, this.onFailure)); 507 497 req.get(); 508 } 509 $U.echo('Loading ' + parsedArgs.names + ' ...', commandline.FORCE_SINGLELINE); 510 } 498 MultiRequester.requestCount++; 499 } 500 } 501 502 $U.echo('Loading ' + parsedArgs.names + ' ...', commandline.FORCE_SINGLELINE); 511 503 }, 512 504 // return {names: '', str: '', count: 0, siteinfo: [{}]} … … 550 542 onSuccess: function(res) { 551 543 544 if (!MultiRequester.doProcess) { 545 MultiRequester.requestCount = 0; 546 return; 547 } 548 552 549 var url, escapedUrl, xpath, doc, html; 550 $U.log('success!!!' + res.request.url); 551 MultiRequester.requestCount--; 553 552 554 553 try { … … 566 565 (new XMLSerializer()).serializeToString(doc).replace(/<[^>]+>/g, function(all) all.toLowerCase()) + 567 566 '</div>'; 568 try { $U.echo(new XMLList(html)); } catch (e) { $U.echo(html); } 567 568 MultiRequester.echoList.push(html); 569 570 if (MultiRequester.requestCount == 0) { 571 MultiRequester.doProcess = false; 572 let html = MultiRequester.echoList.join(''); 573 try { $U.echo(new XMLList(html)); } catch (e) { $U.echo(html); } 574 } 569 575 570 576 } catch (e) { 571 $U.echoerr('error!!: ' + e); 577 $U.log('error!!: ' + e); 578 MultiRequester.echoList.push('error!!:' + e); 572 579 } 573 580 }, 574 581 onFailure: function(res) { 582 MultiRequester.doProcess = false; 575 583 $U.echoerr('request failure!!: ' + res.statusText); 576 584 }, 577 585 onException: function(e) { 586 MultiRequester.doProcess = false; 578 587 $U.echoerr('exception!!: ' + e); 579 588 } -
lang/javascript/vimperator-plugins/trunk/multi_requester.js
r25485 r25491 5 5 * @description-ja リクエストの結果をバッファに出力する。 6 6 * @author suVene suvene@zeromemory.info 7 * @version 0.3. 27 * @version 0.3.3 8 8 * @minVersion 2.0pre 9 9 * @maxVersion 2.0pre … … 368 368 return ret; 369 369 }, 370 _createHTMLDocument: function(str, xmlns) { 371 //str = '<html><title>hoge</title><body><span id="resultList">fuga</span></body></html>'; 372 var doc = (new DOMParser).parseFromString( 373 '<root' + (xmlns ? ' xmlns="' + xmlns + '"' : '') + '>' + str + '</root>', 374 'application/xml'); 375 var imported = document.importNode(doc.documentElement, true); 376 var range = document.createRange(); 377 range.selectNodeContents(imported); 378 var fragment = range.extractContents(); 379 range.detach(); 380 var dom = fragment.lastChild; 381 if (dom.tagName == 'parserError' || dom.namespaceURI == 'http://www.mozilla.org/newlayout/xml/parsererror.xml') { 382 $U.log('retry parsing.'); 383 return this._createHTMLDocument2(str); 384 } else { 385 $U.log('return document fragment'); 386 return fragment.firstChild; 387 } 388 }, 389 _createHTMLDocument2: function(str) { 370 _createHTMLDocument: function(str) { 390 371 var htmlFragment = document.implementation.createDocument(null, 'html', null); 391 372 var range = document.createRange(); … … 468 449 // main controller. 469 450 var MultiRequester = { 451 doProcess: false, 452 requestCount: 0, 453 echoList: [], 470 454 name: DataAccess.getCommand(), 471 455 description: 'request, and display to the buffer', 472 456 cmdAction: function(args) { 473 457 458 if (MultiRequester.doProcess) return; 459 474 460 var argstr = args.string; 475 461 var bang = args.bang; … … 479 465 if (parsedArgs.count == 0) { return; } // do nothing 480 466 467 MultiRequester.doProcess = true; 468 MultiRequester.requestCount = 0; 469 MultiRequester.echoList = []; 481 470 var siteinfo = parsedArgs.siteinfo; 482 471 for (let i = 0, len = parsedArgs.count; i < len; i++) { … … 513 502 req.addEventListener('onFailure', $U.bind(this, this.onFailure)); 514 503 req.get(); 515 } 516 $U.echo('Loading ' + parsedArgs.names + ' ...', commandline.FORCE_SINGLELINE); 517 } 504 MultiRequester.requestCount++; 505 } 506 } 507 508 $U.echo('Loading ' + parsedArgs.names + ' ...', commandline.FORCE_SINGLELINE); 518 509 }, 519 510 // return {names: '', str: '', count: 0, siteinfo: [{}]} … … 557 548 onSuccess: function(res) { 558 549 550 if (!MultiRequester.doProcess) { 551 MultiRequester.requestCount = 0; 552 return; 553 } 554 559 555 var url, escapedUrl, xpath, doc, html; 560 $U.debug('success!!!' + res.request.url); 556 $U.log('success!!!' + res.request.url); 557 MultiRequester.requestCount--; 561 558 562 559 try { … … 574 571 (new XMLSerializer()).serializeToString(doc).replace(/<[^>]+>/g, function(all) all.toLowerCase()) + 575 572 '</div>'; 576 try { $U.echo(new XMLList(html)); } catch (e) { $U.echo(html); } 573 574 MultiRequester.echoList.push(html); 575 576 if (MultiRequester.requestCount == 0) { 577 MultiRequester.doProcess = false; 578 let html = MultiRequester.echoList.join(''); 579 try { $U.echo(new XMLList(html)); } catch (e) { $U.echo(html); } 580 } 577 581 578 582 } catch (e) { 579 $U.echoerr('error!!: ' + e); 583 $U.log('error!!: ' + e); 584 MultiRequester.echoList.push('error!!:' + e); 580 585 } 581 586 }, 582 587 onFailure: function(res) { 588 MultiRequester.doProcess = false; 583 589 $U.echoerr('request failure!!: ' + res.statusText); 584 590 }, 585 591 onException: function(e) { 592 MultiRequester.doProcess = false; 586 593 $U.echoerr('exception!!: ' + e); 587 594 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)