Flash 简单优化

略微提升 Flash 元素的性能。

当前为 2018-04-18 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Simple Faster Flash
  3. // @name:zh-CN Flash 简单优化
  4. // @namespace https://greasyfork.org/users/159546
  5. // @version 1.0.1
  6. // @description Faster flash from simple way.
  7. // @description:zh-CN 略微提升 Flash 元素的性能。
  8. // @author LEORChn
  9. // @include *
  10. // @run-at document-start
  11. // @grant none
  12. // ==/UserScript==
  13. var done=0,countdown=10 *5;// 10 sec
  14. (function(){
  15. recheck();
  16. })();
  17. function recheck(){
  18. __object();
  19. __embed();
  20. if(pageloaded() && finaly())return;
  21. setTimeout(recheck,200);
  22. }
  23. function __object(){
  24. try{
  25. for(var i=0,v=document.getElementsByTagName('object'),len=v.length;i<len;i++)
  26. if(v[i].type.toLowerCase().includes('flash')){
  27. var qNode;
  28. for(var i2=0,v2=v[i].childNodes,l2=v2.length;i2<l2;i2++)
  29. if(v2[i2].name && v2[i2].name.includes('quality')){//maybe multi object elements nesting. Like news.163.com
  30. qNode=v2[i2];
  31. break;
  32. }
  33. if(qNode==undefined){
  34. qNode=document.createElement('param');
  35. qNode.name='quality';
  36. v[i].appendChild(qNode);
  37. }
  38. if(qNode.value!='low'){
  39. qNode.value='low';
  40. done++;
  41. }
  42. }
  43. }catch(e){}
  44. }
  45. function __embed(){
  46. for(var i=0,v=document.getElementsByTagName('embed'),len=v.length;i<len;i++)
  47. if(v[i].type.toLowerCase().includes('flash') && !v[i].outerHTML.includes('quality="low"')){
  48. v[i].outerHTML=v[i].outerHTML.replace('<embed','<embed quality="low"');
  49. done++;
  50. }
  51. }
  52. function pageloaded(){ return document.readyState.toLowerCase()=='complete'; }
  53. function finaly(){
  54. countdown--;//Use count down because some flash element using js to add in page. Like live.bilibili.com...
  55. if(countdown>0)return false;
  56. try{console.log('Simple Faster Flash: Faster '+done+' flash element(s).');}catch(e){}
  57. return true;
  58. }