RegisterMenu

enter menu

当前为 2015-09-24 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name RegisterMenu
  3. // @namespace http://lifia.unlp.edu.ar
  4. // @version 0.1
  5. // @description enter menu
  6. // @match http://*/*
  7. // @require http://code.jquery.com/jquery-2.1.4.min.js
  8. // ==/UserScript==
  9.  
  10. /* Elimina todos los .js para utilizar la version del @require y no se genere conflicto */
  11. if (window.jQuery){
  12. $('head script[src*="js"]').remove();
  13. }
  14.  
  15. GM_registerMenuCommand('run', funcionSeba);
  16. GM_registerMenuCommand('import JSON', importJson);
  17.  
  18. function funcionSeba(){
  19. var obj = getLocal();
  20. var objectParent = constructObject(obj);
  21. runPage(objectParent);
  22. }
  23.  
  24. function importJson() {
  25. var importData = prompt("Importar la configuracion. Ingrese el JSON correspondiente");
  26. // La longitud debe ser igual o mayor a 218, como para asegurar la estructura inicial del Json.
  27. if(importData.length >= 218){
  28. dataJson = JSON.parse(importData);
  29. saveLocal();
  30. alert("Se ha importado exitosamente!");
  31. } else {
  32. alert("Formato JSON ingresado no es el correspondiente. Por favor reintentelo nuevamente")
  33. }
  34. }
  35.  
  36. function saveLocal(){
  37. if (typeof(Storage) !== "undefined") {
  38. localStorage.setItem("obj", JSON.stringify(dataJson));
  39. } else {
  40. alert("Sorry, your browser does not support Web Storage...");
  41. }
  42. }
  43.  
  44. function getLocal(){
  45. if (typeof(Storage) !== "undefined") {
  46. return JSON.parse(localStorage.getItem("obj"));
  47. } else {
  48. alert("Sorry, your browser does not support Web Storage...");
  49. }
  50. }
  51. function getElements(xpath){
  52. // Recive algo como obj[0].headerLeft
  53. var node = document.evaluate(
  54. xpath,
  55. document,
  56. null,
  57. XPathResult.FIRST_ORDERED_NODE_TYPE,
  58. null ).singleNodeValue;
  59. return node;
  60. }
  61.  
  62. function concatElement(element){
  63. var stringElements = "";
  64. var getElement;
  65. $.each( element, function( key, value ) {
  66. if (value != "none"){
  67. getElement = getElements(value);
  68. if(getElement !== null){
  69. stringElements += "<div>"+getElement.innerHTML+"</div>";
  70. }
  71. else
  72. stringElements = null;
  73. }
  74. else
  75. stringElements = "none";
  76. });
  77. return stringElements;
  78. }
  79.  
  80. function constructObject(obj){
  81. var object = {};
  82. var error = false;
  83. $.each( obj, function( key, value ) {
  84. if (concatElement(value) === null){
  85. error = true
  86. messagge = "No se pudo cargar un elemento en "+key;
  87. return true;
  88. }
  89. if (concatElement(value) == "none"){
  90. object[key] = "";
  91. }
  92. else
  93. object[key] = concatElement(value);
  94. });
  95. if (error === true){
  96. alert(messagge);
  97. return null;
  98. }
  99. else
  100. return object;
  101. }
  102.  
  103. //var objectParent = constructObject(obj);
  104.  
  105. function importElement(source, destination){
  106. $(destination).append(source);
  107. }
  108.  
  109. function insertZoneMenu(element){
  110. var links = element.find("a");
  111. $("#menu").append("<nav class='navbar navbar-default' role='navigation'> <div class='navbar-header'> <button type='button' class='navbar-toggle' data-toggle='collapse' data-target='#bs-example-navbar-collapse-1'> <span class='sr-only'>Toggle navigation</span><span class='icon-bar'></span><span class='icon-bar'></span><span class='icon-bar'></span></button> </div> <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'> <ul id='menu-nav' class='nav navbar-nav'> </ul> </div> </nav> ");
  112. $.each(links, function(i, e){
  113. $("#menu-nav").append("<li><a href='"+e+"'>"+$(e).html()+"</a></li>");
  114. });
  115. }
  116.  
  117. function runPage(objectParent){
  118. $("head").append("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">");
  119. $("head").append("<script src='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js'></script>");
  120. $("head").append("<link rel='stylesheet' href='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css'>");
  121. $("head").append("<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css'>");
  122. $("head").append("<style>*{min-width: 0px !important;}</style>");
  123. $("head").append("<style>*{max-width: 100% !important;}</style>");
  124. //$("ins").remove();
  125.  
  126. if (objectParent !== null){
  127. //Insert Bootstrap structure
  128. $("body").html("");
  129. $("body").append("<div class='container-fluid'> <div class='row'> <div id='header-left' class='col-md-4'> </div> <div id='header-center' class='col-md-4'> </div> <div id='header-right' class='col-md-4'> </div> </div> <div class='row'> <div id='menu' class='col-md-12'> </div> </div> <div class='row'> <div id='main-left' class='col-md-4'> </div> <div id='main-center' class='col-md-4'> </div> <div id='main-right' class='col-md-4'> </div> </div> <div class='row'> <div id='footer-left' class='col-md-4'> </div> <div id='footer-center' class='col-md-4'> </div> <div id='footer-right' class='col-md-4'> </div> </div> </div>");
  130. importElement(objectParent.headerLeft,"#header-left");
  131. importElement(objectParent.headerCenter,"#header-center");
  132. importElement(objectParent.headerRight,"#header-right");
  133. importElement(objectParent.menu,"#menu");
  134. importElement(objectParent.mainLeft,"#main-left");
  135. importElement(objectParent.mainCenter,"#main-center");
  136. importElement(objectParent.mainRight,"#main-right");
  137. importElement(objectParent.footerLeft,"#footer-left");
  138. importElement(objectParent.footerCenter,"#footer-center");
  139. importElement(objectParent.footerRight,"#footer-right");
  140. }
  141. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址