Execute javascript codes

javascript for domains
Global javascript files locates in the subfolder "js" of app private folder. Long press button [☰] to configure. Click the following links to install:
<a target=_self" href="i:0hjs/savePassword.js:https://fastly.jsdelivr.net/gh/torappinfo/uweb/zh/searchurl/txt/passwdsave.js">Save password
Instant page

large size javascript code can be installed to the folder "bookmarklet" (long pressing button "js" to popup menu):
Eruda
Performance

Remote javascript is defined in default.rjs. Click the following link to install. (Force exit and re-launch the app, then long press the "search" button to popup the menu.):

Selection to sentence:;let g='sentence';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);

Selection to line:;let g='line';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);

Selection to paragraph:;let g='paragraph';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);

markdown:['https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js'];var d=document;var md=d.querySelector('pre').innerText;var c=new showdown.Converter({emoji:true,underline:true,});c.setFlavor('github');d.body.innerHTML=c.makeHtml(md);d.title=d.title||d.body.firstElementChild.innerText.trim();

mathjax:['https://fastly.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js']

New tab to open links:;let d=document;b=d.createElement('base');b.setAttribute('target','_blank');d.head.appendChild(b)

Site search:;open('i:15site:' + location.hostname)

Spell check:;let t=document.getElementsByTagName('textarea');let v=t[0].spellcheck;if(v==null)v=false;t[0].spellcheck=!v

Remote script configuration file "default.rjs" whose lines have the following format:
[script name]:[javascript code to return url arrays]

Allow remote js on CSP (Content Security Policy) sites

All remote js (default.rjs) are allowed to execute on CSP sites. Local js files without remote resource access work fine when under the folder "bookmarklet", others needs to be refered in default.rjs as http urls such as "https://local/..." (html5 or offline cache) .