Skip to main content

Thread: Trying to force and Opera userjs to work in Midori...


so, don't know javascript, , less inner workings of midori.

here userjs got opera forums:
code:
// ==userscript==  // @name blockit, noscript extension firefox, different.  // @author shoust  // @version 1.5  // @description  best way describe extension firefox, noscript extension firefox allows selective blocking/unblocking of scripts in page, same , more, allows blocking/unblocking of iframes,embedded content , images well, plus default, keeps elements based on site unblocked, things not based on site blocked.  // @include *  // ==/userscript==    (function() {      if (location.hash != '#nsoff' && !window.name.match(/#nsoff/) && !location.href.match(/\.(svgz?|jpe?g|js|txt|png|gif|bmp|css)$/)) {          /*check if script needs executed. */       var cornerposition = 4;      // 1 = top left, 2=top right , 3=bottom left , 4=bottom right etc, makes button show options in either top or bottom of page.      var blocksiteresources = false;      // option allows blocking of scripts based on site, if false, resources residing on http://my.opera.com on http://my.opera.com/community/ won't blocked example.      var imgblockit = false;      var iframeblockit = true;      var mediablockit = true;          function createcookie(name, value, days, addition, forpage)          /* saving settings cookies. "addition" variable add settings cookie, instead of removing whole cookie altogether*/          {              if (!forpage)              /*saving settings page/pathname only,instead of whole site*/              {                  var x = escape(location.pathname);                  x = x.replace(/\//g, '__').replace(/\./g, '--');              }              if (name != 'noresource') name = 'no' + activeselect();              if (days) {                  var date = new date();                  date.settime(date.gettime() + (days * 24 * 60 * 60 * 1000));                  var expires = "; expires=" + date.togmtstring();              } else              var expires = "";              document.cookie = name + (!forpage ? x: '') + "=" + value + (addition ? ' ' + addition: '') + expires + "; path=/";          }          function readcookie(name, forpage)          /*for reading settings*/          {              if (!forpage)              /*reading settings page/pathname only,instead of whole site*/              {                  var x = escape(location.pathname);                  x = x.replace(/\//g, '__').replace(/\./g, '--');              }              var nameeq = (forpage == 'g' ? name: name + x) + "=";              var ca = document.cookie.split(';');              (              var = 0; < ca.length; i++) {                  var c = ca[i];                  while (c.charat(0) == ' ')                  c = c.substring(1, c.length);                  if (c.indexof(nameeq) == 0)                  return c.substring(nameeq.length, c.length);              }              return '';          }            function erasecookie(name) {              createcookie(name + activeselect(), "", -1);          }          // deleting settings            /* work out elements being selected block @ right time*/          function activeselect() {              var x = document.getelementbyid('ujs42-_noelementselect');              return (x ? x[x.selectedindex].value: 'script');          }            /* function generate element block list iframes, embeds , images in page. */          function generatelist(name) {              var elementz = document.selectnodes('//' + name + '[@src]');              if (!elementz.length) {                  //if no elements on page, nothing else.                  return;              }              var count = elementz.length;              var forpage = readcookie('no' + name) ? readcookie('no' + name) : '';              //settings page              var forsite = readcookie('no' + name, 'g') ? readcookie('no' + name, 'g') : '';              //settings site              var forserverunblock = readcookie('noresource', 'g') ? readcookie('noresource', 'g') : '';              var listselect = document.createelement('select');              //the list of elements , urls block              listselect.onchange = blocktoggle;              listselect.id = "ujs42-_no" + name + "select";              listselect.style = 'width:300px;display:none;margin-right:20px !important;';              var host = location.hostname;              (              var = elementz.length - 1; >= 0, element = elementz[i]; i--) {                  var link = document.createelement('a');                  //just way hostname without using match or indexof.                  link.href = (element.src ? element.src: element.getattribute('src'));                  var linkhost = link.hostname;                  elemcount = + 's';                  // unique identifier in document's order block element or unblock element.                  var listoption = document.createelement('option');                  listoption.value = elemcount;                  listoption.innertext = (element.src ? element.src: element.getattribute('src'));                  listoption.setattribute('title', linkhost);                  //unique server identifier block or unblock server                  listoption.setattribute('alt', element.currentstyle.display);                  if (!blocksiteresources && linkhost == host) {                      count--;                      // not display elements same site if blocksiteresources off.                  }                  else if (link.href.indexof('data:') == 0) {                      count--;                      // not display elements starting data:                  }                  else if ((forpage && forpage.indexof(elemcount.tostring()) != -1) || (forsite && forsite.indexof(linkhost) != -1) || (forserverunblock && forserverunblock.indexof(linkhost) != -1)) {                      // unblock elements if match cookie says unblock them                      showasblocked_unblocked(listoption);                      listselect.appendchild(listoption);                  }                  else {                      //blocks element.                      element.style.display = 'none';                      showasblocked_unblocked(listoption, 'x');                      listselect.appendchild(listoption);                  }                }              if (count != 0)              {                  //if elements needed blocked zero, don't display option block list of elements.                  var elemselect = document.createelement('option');                  elemselect.innertext = (name == 'img' ? 'images': name == 'embed' ? 'embeds(media)': name == 'iframe' ? 'iframes': '') + '(' + count + ',' + elementz.length + ')';                  elemselect.value = name;                  return [elemselect,listselect];              }          }            function showelementlist() {              //this function toggle between element lists block , unblock              var elemlist = ['img', 'embed', 'iframe', 'script'];              var element = this.value;              var elemselect = document.getelementbyid('ujs42-_no' + element + 'select');              (              var = elemlist.length - 1; >= 0, elemtag = elemlist[i]; i--)                if (elemtag == element) {                  elemselect.style.display = 'inline';              } else              if (document.getelementbyid('ujs42-_no' + elemtag + 'select')) {                  document.getelementbyid('ujs42-_no' + elemtag + 'select').style.display = 'none';              }              if (elemselect && elemselect.disabled == false)              blocktoggle();          }            function showasblocked_unblocked(element, block, bringback, single) {              //function show if element blocked or unblocked in ui.              var notblocked = (element.innertext.indexof('#x# -') == 0);                            var noscriptelement = document.getelementbyid('ujs42-_noscriptselect');              if (!notblocked && block == 'x') {                  if ((noscriptelement && noscriptelement.style.display == 'none') || !noscriptelement && single) {                      var highlight = document.selectsinglenode('//*[@src="' + element.innertext + '"]');  if(highlight)                    {highlight.style.outlinecolor = 'red';                      highlight.style.outlinestyle = 'dashed';                      settimeout(function() {                          highlight.style.outlinestyle = 'none';                          highlight.style.display = 'none';                      },                      500);                  }}                  element.innertext = '#x# -' + element.innertext;              } else              if (notblocked && !block) {                  element.innertext = element.innertext.substr(5);                  if ((noscriptelement && noscriptelement.style.display == 'none') || !noscriptelement && single) {                      var highlight = document.selectsinglenode('//*[@src="' + element.innertext + '"]');                      if(highlight){highlight.style.display = element.getattribute('alt');                      highlight.style.outlinecolor = 'orange';                      highlight.style.outlinestyle = 'dashed';                      settimeout(function() {                          highlight.style.outlinestyle = 'none';                      },                      500);                      if (single == '1') {                          highlight.scrollintoview(true);                      }}                  }              }              if (bringback) {                  return element              }          }            function block_unblock() {              //the function write stuff needed unblock cookie.              var optionelement = document.getelementbyid('ujs42-_no' + activeselect() + 'select');              var whattoblock = (event.ctrlkey || this.value == 'server') ? optionelement[optionelement.selectedindex].getattribute('title') : (event.shiftkey || this.value == 'all') ? '': optionelement.value;              var unblockonly = event.altkey;              var whatservertounblock = (event.ctrlkey && this.value == 'server');              var forpage = readcookie('no' + activeselect()) ? readcookie('no' + activeselect()) : '';              //for page only, doesn't affect other pages on same site              var forsite = readcookie('no' + activeselect(), 'g') ? readcookie('no' + activeselect(), 'g') : '';              //for whole site, unblock servers.              var forserverunblock = readcookie('noresource', 'g') ? readcookie('noresource', 'g') : '';              if (document.getelementbyid('ujs42-_nelbb').value == 'block') {                  //if in block mode, blocks element.                  if (whattoblock != '' && whattoblock.match(/^\d{1,3}s/)) {                      //blocks single element                      showasblocked_unblocked(optionelement[optionelement.selectedindex], 'x', false, '1');                      forpage = forpage.replace(whattoblock, '');                      if(!unblockonly)createcookie('no', forpage, ((forsite == '' && forpage == '') ? -1: 365));                  } else                  if (whattoblock == '') {                      //blocks elements.                      erasecookie('no' + activeselect());                      (                      var = optionelement.length - 1; >= 0, x = optionelement[i]; i--) {                          showasblocked_unblocked(x, 'x',false,'2');                      }                  } else {                      if (!whatservertounblock) {                          // blocks server only.                          (                          var = optionelement.length - 1; >= 0, x = optionelement[i]; i--) {                              if (whattoblock.indexof(x.title) != -1) {                                  showasblocked_unblocked(x, 'x',false,'2');                              }                          }                          forsite = forsite.replace(whattoblock, '');                          if(!unblockonly)createcookie('no', forsite, ((forsite == '' && forpage == '') ? -1: 365), null, 'g');                      }                      else {                          //blocks server resources available.                          var elemlist = ['ujs42-_noimgselect', 'ujs42-_noembedselect', 'ujs42-_noiframeselect', 'ujs42-_noscriptselect'];                          (var elemlistx = elemlist.length - 1; elemlistx >= 0, elemlisth = elemlist[elemlistx]; elemlistx--) {                              if (!document.getelementbyid(elemlisth)) {                                  continue;                              }                              else {                                  optionelement = document.getelementbyid(elemlisth);                              }                              (                              var = optionelement.length - 1; >= 0, x = optionelement[i]; i--) {                                  if (whattoblock.indexof(x.title) != -1) {                                      showasblocked_unblocked(x, 'x', false, '2');                                  }                              }                          }                          forserverunblock = forserverunblock.replace(whattoblock, '');                          if(!unblockonly)createcookie('noresource', forserverunblock, (forserverunblock == '' ? -1: 365), null, 'g');                      }                    }              } else {                  if (whattoblock != '' && whattoblock.match(/^\d{1,3}s/)) {                      //unblocks single element                      showasblocked_unblocked(optionelement[optionelement.selectedindex], false, false, '1');                      if(!unblockonly)createcookie('no', whattoblock, 365, forpage);                  } else                  if (whattoblock == '') {                      //unblocks elements.                      var rt = [];                      (                      var = optionelement.length - 1; >= 0, g = optionelement[i]; i--) {                          var z = + 's';                          if (forpage.indexof(z) == -1) {                              showasblocked_unblocked(g,false,false,'2');                              rt[rt.length] = z;                          }                      }                        if(!unblockonly)createcookie('no', rt.tostring().replace(/\,/g, ' '), 365, forpage);                  }                  else {                      if (!whatservertounblock) {                          //unblocks server only.                          (                          var = optionelement.length - 1; >= 0, x = optionelement[i]; i--) {                              if (whattoblock.indexof(x.title) != -1) {                                  showasblocked_unblocked(x,false,false,'2');                              }                          }                          if(!unblockonly)createcookie('no', whattoblock, 365, forsite, 'g');                      }                      else {                          //unblocks server resources available.                          var elemlist = ['ujs42-_noimgselect', 'ujs42-_noembedselect', 'ujs42-_noiframeselect', 'ujs42-_noscriptselect'];                          (var elemlistx = elemlist.length - 1; elemlistx >= 0, elemlisth = elemlist[elemlistx]; elemlistx--) {                              if (!document.getelementbyid(elemlisth)) {                                  continue;                              }                              else {                                  optionelement = document.getelementbyid(elemlisth);                              }                              (                              var = optionelement.length - 1; >= 0, x = optionelement[i]; i--) {                                  if (whattoblock.indexof(x.title) != -1) {                                      showasblocked_unblocked(x, false, false, '2');                                  }                              }                          }                          if(!unblockonly)createcookie('noresource', whattoblock, 365, forserverunblock, 'g');                      }                  }              }              blocktoggle();          }            function blocktoggle() {              //toggles block button unblock , vice versa.              var = document.getelementbyid('ujs42-_nelbb');              var b = document.getelementbyid('ujs42-_no' + activeselect() + 'select');              if (b[b.selectedindex].innertext.indexof('#x# -') == 0) {                  a.value = 'unblock';              } else {                  a.value = 'block';              }          }              var scriptcount = 0;          var scripturls = [];          midori.addeventlistener('beforeexternalscript',          function(e) {              if (e.element.tagname != 'script') {                  //not script? nothing else                  return              }              var scriptsource = e.element.src;              var forpage = readcookie('noscript');              var forsite = readcookie('noscript', 'g');              var forserverunblock = readcookie('noresource', 'g');              var link = document.createelement('a');              //same way hostname without needing match              link.href = scriptsource;              var linkhost = link.hostname;              scriptnumber = scriptcount + 's';              //unique identifier script order in document.              var scriptoption = document.createelement('option');              scriptoption.value = scriptnumber;              scriptoption.innertext = scriptsource;              scriptoption.setattribute('title', linkhost);              if (!blocksiteresources && linkhost.indexof(location.hostname) != -1) {                  //do nothing if blocksiteresources off.                  }              else if ((forpage && forpage.indexof(scriptnumber.tostring()) != -1) || (forsite && forsite.indexof(linkhost) != -1) || (forserverunblock && forserverunblock.indexof(linkhost) != -1))              {                  //if cookie contains , "unblocks" make sure added.                  scripturls.push(scriptoption);              }              else {                  //block scripts if cookie tells them not blocked.                  e.preventdefault();                  scripturls.push(showasblocked_unblocked(scriptoption, 'x', 'h'));              }              scriptcount++;          },          false);          document.addeventlistener('domcontentloaded',          function() {              var userinterface = document.createelement('ujs42-_noresource');              userinterface.style = 'position:fixed;' + (cornerposition < 3 ? 'top': 'bottom') + ':1px;' + (cornerposition % 2 == 1 ? 'left': 'right') + ':1px;width:20px;height:20px;background:-o-skin("browser window skin");white-space:nowrap;z-index:9999;direction:ltr;border:1px solid black;';              userinterface.id = 'ujs42-_noresourceinterface';              //the interface unblocking resources , blocking them              var uibackground = document.createelement('ujs42-_noresourceui');              //holds of ui elements, , centers them whenever possible              uibackground.id = 'ujs42-_noiframeui';              uibackground.style.display = 'none';              uibackground.style.textalign = 'center';              var elementselection = document.createelement('select');              //to select list of elements block.              elementselection.id = "ujs42-_noelementselect";              elementselection.onchange = showelementlist;              elementselection.style.width = 'auto !important';              elementselection.style.marginleft = '20px !important';              uibackground.appendchild(elementselection);              var noscriptlist = document.createelement('select');              //for listing scripts in page, needed blocked              noscriptlist.onchange = blocktoggle;              noscriptlist.id = "ujs42-_noscriptselect";              noscriptlist.style = 'width:300px;margin-right:20px !important;';              if (scripturls.length) {                  //start add scripts.                  var scriptscounter = document.createelement('option');                  scriptscounter.innertext = 'scripts' + '(' + scripturls.length + ',' + scriptcount + ')';                  //adds scripts counter blocked/unblocked, plus total number.                  scriptscounter.value = 'script';                  elementselection.appendchild(scriptscounter);                  (                  var = scripturls.length - 1; > -1; i--) {                      noscriptlist.appendchild(scripturls[i]);                  }                  uibackground.appendchild(noscriptlist);              }              //no scripts here? don't add.              if(imgblockit){var x=generatelist('img');              if(x){elementselection.appendchild(x[0]);uibackground.appendchild(x[1]);}}//to add other resource lists, if wished.              if(iframeblockit){var x=generatelist('iframe');              if(x){elementselection.appendchild(x[0]);uibackground.appendchild(x[1]);}}              if(mediablockit){var x=generatelist('embed');              if(x){elementselection.appendchild(x[0]);uibackground.appendchild(x[1]);}}                          if (elementselection.innerhtml != '') { //no point carrying on if there aren't resources unblocked.  var unblockselected = document.createelement('input');              unblockselected.type = 'button';              unblockselected.id = 'ujs42-_nelbb';              unblockselected.value = 'block';              //button block individual resources.              unblockselected.onclick = block_unblock;              uibackground.appendchild(unblockselected);              var unblockall = document.createelement('input');              unblockall.type = 'button';              unblockall.value = 'all';              //button block resources.              unblockall.onclick = block_unblock;              uibackground.appendchild(unblockall);              var tempunblock = document.createelement('input');              tempunblock.type = 'button';              tempunblock.value = 't-unblock';              //unblocks tab only.              tempunblock.title = 'temporarily unblocks resources tab,warning: page reload, shift click webpage only. turn resource blocking on, either remove #nsoff url , hit enter or close tab , re-open it.';              tempunblock.onclick = function(e) {                  if (e.shiftkey) location.hash = '#nsoff';                  else window.name = window.name + '#nsoff';                  history.go(0);              };              uibackground.appendchild(tempunblock);              var unblockserver = document.createelement('input');              unblockserver.type = 'button';              unblockserver.id = 'ujs42-_nelser';              unblockserver.value = 'server';              //unblocks according server address.              unblockserver.onclick = block_unblock;              uibackground.appendchild(unblockserver);              var previewresource = document.createelement('input');              previewresource.type = 'button';              previewresource.id = 'ujs42-_resourcepreview'              previewresource.value = 'preview';              //previews resource in new tab.              previewresource.onclick = function() {                  var selectedelementindex = document.getelementbyid('ujs42-_no' + activeselect() + 'select').selectedindex;                  var elementoption = document.getelementbyid('ujs42-_no' + activeselect() + 'select')[selectedelementindex].innertext;                  if (elementoption.indexof('#x# -') == 0) {                      window.open(elementoption.substr(5))                  } else window.open(elementoption)              };              uibackground.appendchild(previewresource);              var showui = document.createelement('input');              showui.type = 'button';              showui.style = 'width:20px;height:20px;background:-o-skin("panel links");display:inline-block;position:absolute;' + (cornerposition < 3 ? 'top': 'bottom') + ':0px;' + (cornerposition % 2 == 1 ? 'left': 'right') + ':0px;';              //button on show interface.              showui.onclick = function() {                  if (uibackground.style.display == 'none') {                      uibackground.style.display = 'inline-block';                      userinterface.style.width = 'auto';                      userinterface.style.height = 'auto';                      if (document.getelementbyid('ujs42-_no' + activeselect() + 'select').disabled == false) {                          blocktoggle();                      }                  } else {                      uibackground.style.display = 'none';                      userinterface.style.width = '20px';                      userinterface.style.height = '20px';                  }              }              userinterface.appendchild(uibackground);              userinterface.appendchild(showui);              document.documentelement.appendchild(userinterface);              var linebreak = document.createelement('br');              uibackground.insertbefore(linebreak, unblockselected);  if (!document.getelementbyid('ujs42-_noscriptselect')) {                  elementselection.onchange();              }              var stylesheet = document.createelement('style');              stylesheet.innertext = '#ujs42-_noresourceinterface *{font-family:sans-serif !important}#ujs42-_noresourceinterface input[type=button],#ujs42-_noresourceinterface select{border:2px outset black !important;margin:0px !important;}#ujs42-_noresourceinterface input[type=button]:active{outline:2px inset black !important;border:0px !important;}#ujs42-_noiframeui input[type=button]{background-color:#e0e0e0 !important;margin-right:4px !important}#ujs42-_noresourceinterface select{background-color:white !important;}@media screen , (max-width: 1200px) {#ujs42-_noiframeui *{font-size:10pt !important;}#ujs42-_noscriptselect,#ujs42-_noimgselect,#ujs42-_noiframeselect,#ujs42-_noembedselect{width:300px !important}}@media screen , (max-width: 800px) {#ujs42-_noiframeui *{font-size:8pt !important;}#ujs42-_noscriptselect,#ujs42-_noimgselect,#ujs42-_noiframeselect,#ujs42-_noembedselect{width:200px !important}} @media screen , (max-width: 500px) {#ujs42-_noiframeui *{font-size:6pt !important;}#ujs42-_noscriptselect,#ujs42-_noimgselect,#ujs42-_noiframeselect,#ujs42-_noembedselect{width:150px !important} #ujs42-_noiframeui input[type=button]{margin-right:0px !important}#ujs42-_resourcepreview,#ujs42-_nelbb{padding-left:0px !important;padding-right:0px !important}}@media screen , (max-width: 270px){#ujs42-_noiframeui{display:inline-block;}#ujs42-_noresourceinterface{width:100% !important;height:auto !important;content:"blockit can\'t viewed @ width";white-space:normal !important;text-align:center;}}';              //interesting bit here, script work or screen sizes, checks width , resizes accordingly, while keeping main toggle button out of way              document.documentelement.appendchild(stylesheet);          }},          false);      }  })  ()
i replaced 1 instance of "opera" "midori" , googled make sure makes sense, , does.

documentation on midori sparse @ best , have no experience debugging javascript. know script nothing @ in midori.



Forum The Ubuntu Forum Community Ubuntu Specialised Support Development & Programming Programming Talk Trying to force and Opera userjs to work in Midori...


Ubuntu

Comments

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor