ramajs

web browser automation from your browser console
git clone https://tongong.net/git/ramajs.git
Log | Files | Refs | README | LICENSE

rama.min.js (1788B)


      1 rama={number:0,stdparent:document.querySelector("body"),new:function(e){const t={url:window.location.href,parent:this.stdparent,name:"rama-"+this.number};this.number++,"object"!=typeof e&&(e={}),e.hasOwnProperty("url")||(e.url=t.url),e.hasOwnProperty("parent")||(e.parent=t.parent),e.hasOwnProperty("name")||(e.name=t.name),e.hasOwnProperty("id")&&(e.name=e.id),console.log(e);let n=document.createElement("iframe");n.name=e.name,n.src=e.url,n.id=e.name,n.classList.add("rama-frame"),e.parent.appendChild(n);const r={tag:n,t:n,w:n.contentWindow,window:n.contentWindow,name:e.name,id:e.name,waitForReload:function(){return new Promise((e=>{n.addEventListener("load",e,{once:!0})}))},waitFor:function(e,t){return new Promise((n=>{t||(t=500);let o=window.setInterval((()=>{e(r)&&(window.clearInterval(o),n())}),t)}))},waitForSelector:function(e,t){return this.waitFor((t=>t.d&&!!t.d.querySelector(e)),t)},close:function(){this.tag.parentElement.removeChild(this.tag)}};return n.addEventListener("load",(()=>{r.document=n.contentDocument,r.document.qsa=function(e){return Array.from(r.document.querySelectorAll(e))},r.d=r.document})),r},clearpage:function(){this.stdparent=document.querySelector("html"),this.loadcss(".rama-frame { width: 100vw; height: 100vh; position: fixed; top: 0; left: 0; } body { display: none; } html { overflow: hidden; } ")},loadjs:function(e){return new Promise(((t,n)=>{let r=document.createElement("script");r.src=e,r.addEventListener("load",t),r.addEventListener("error",(e=>n(e.error))),document.head.appendChild(r)}))},loadcss:function(e){let t=document.createElement("style");t.innerHTML=e,document.head.appendChild(t)},clearcss:function(){Array.from(document.querySelectorAll("style, link[rel='stylesheet']")).forEach((e=>e.parentElement.removeChild(e)))}};