rebuilding site Sun Jul 3 04:33:22 PM CST 2022

This commit is contained in:
James Feng Cao 2022-07-03 16:33:23 +08:00
parent a8e5f9241c
commit 0ef2ef46fe
19 changed files with 616 additions and 54 deletions

View File

@ -12,7 +12,7 @@
<pubDate>Sat, 02 Jul 2022 00:00:00 +0000</pubDate>
<guid>/en/sitemap/</guid>
<description>UI Search engines Home screen Quick start UI (gitee) Backup and restore Customization Bottom toolbar button long pressing menus User agents Javascript Url services Links Commands Remote javascript Menu for selections Menu for long pressing hypertext Toolbar Gestures Font settings Advanced Content ADs block CSS styles redirection Javascript and CSS for domains Offline cache Tools Bookmarklets Custom file handling Html5 application File manager Tools Termux GNU bc Gnuplot tcron Offline download Miscellaneous Configuration files Plugins Tips Tips Video Debug </description>
<description>UI Search engines Home screen Quick start UI (gitee) Backup and restore Customization Bottom toolbar button long pressing menus User agents Javascript Url services Links Commands Remote javascript Menu for selections Menu for long pressing hypertext Toolbar Gestures Font settings Advanced Content AD blocking CSS styles redirection Javascript and CSS for domains Offline cache Tools Bookmarklets Custom file handling Html5 application File manager Tools Termux GNU bc Gnuplot tcron Offline download Miscellaneous Configuration files Plugins Tips Tips Video Debug </description>
</item>
<item>
@ -46,5 +46,50 @@ Long pressing the bookmark button in uweb browser will popup menus defined in fi
in which space and later parts are optional. url and later parts support &amp;quot;%u&amp;quot;,&amp;quot;%s&amp;quot; etc.. The javascript code will be executed after url is fully loaded.</description>
</item>
<item>
<title>AD blocking</title>
<link>/en/adblock/</link>
<pubDate>Sat, 25 Jun 2022 00:00:00 +0000</pubDate>
<guid>/en/adblock/</guid>
<description>Host blocking。
Use bookmarklet &amp;quot;list all script urls&amp;quot; to generate url links, long pressing dubious script (usually 3rd-party library) link, click &amp;quot;Block domain root&amp;quot;. Javascript and CSS for domains。
Long press the button &amp;quot;js&amp;quot;, click the menu &amp;quot;MarkAD mode&amp;quot;. In &amp;quot;markAD mode&amp;quot;, click page element to show all attributes and generate CSS AD blocking styles. By default, &amp;quot;display:none&amp;quot; is used. If &amp;quot;display&amp;quot; appears in the attribute information, recommend to use &amp;quot;transform:scale(0)!</description>
</item>
<item>
<title>Bookmarklets</title>
<link>/en/bookmarklet/</link>
<pubDate>Fri, 24 Jun 2022 00:00:00 +0000</pubDate>
<guid>/en/bookmarklet/</guid>
<description>With a href=&amp;quot;../index.html&amp;quot;&amp;gt;uweb browser, long pressing any bookmarklet link, click &amp;quot;Open in new tab&amp;quot;, the bookmarklet will be run on the last other tab.
List all script urls
User agent
Cookie
Source code
Last modified date
Eruda: mobile console
QR code generation
Use &amp;quot;GET&amp;quot; method for &amp;quot;POST&amp;quot;
Shows all form elements
Enables all form elements
Toggle checkboxes
Check all checkboxes
Uncheck all checkboxes
Toggle all checkboxes in forms
Enable selection</description>
</item>
<item>
<title>Javascript and CSS for domains</title>
<link>/en/sitejs/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/en/sitejs/</guid>
<description>Javascript (load when page completes, earliest loaded JS should use sitecss).
Need to be named as &amp;quot;[domain root].js&amp;quot;, such as &amp;quot;yahoo.com.js&amp;quot; or &amp;quot;finance.yahoo.com.js&amp;quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded. Script must be put under the folder &amp;quot;/sdcard/uweb/sitejs&amp;quot; or &amp;quot;/data/data/info.torapp.uweb/files/sitejs&amp;quot;. The later folder has the priority. Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Run user scripts&amp;quot;.</description>
</item>
</channel>
</rss>

76
en/adblock/index.html Normal file
View File

@ -0,0 +1,76 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/uwebzh/style.css" type="text/css" />
<title>AD blocking</title>
<script type="text/javascript">
function nav2(page){
let href = location.href;
for(let i=href.length-1;i>0;i--){
if('/'==href.charAt(i) && '/'==href.charAt(i-3))
location.href = href.substring(0,i+1)+page;
}
return false;
}
</script>
</head>
<body>
<header class='header'>
<a class="logo" href="javascript:void(0)" onclick="return nav2('index.html')">Home</a> <a class="logo" href="javascript:void(0)" onclick="return nav2('tags/index.html')">Tags</a>
<nav>
</nav>
</header>
<br />
<div class="container">
<h1 class="title">AD blocking
<br>
<span class="subtitle"></span>
</h1>
<ul class="tags">
</ul>
<ul>
<li>
<p><a href="../adblock_domain/index.html">Host blocking</a></p>
<ul>
<li>Use <a href="../bookmarklet/index.html">bookmarklet &quot;list all script urls&quot;</a> to generate url links, long pressing dubious script (usually 3rd-party library) link, click &quot;Block domain root&quot;.</li>
</ul>
</li>
<li>
<p><a href="../sitejs/index.html">Javascript and CSS for domains</a></p>
<ul>
<li>Long press the button &quot;js&quot;, click the menu &quot;MarkAD mode&quot;. In &quot;markAD mode&quot;, click page element to show all attributes and generate CSS AD blocking styles. By default, &quot;display:none&quot; is used. If &quot;display&quot; appears in the attribute information, recommend to use &quot;transform:scale(0)!important&quot; instead.</li>
</ul>
</li>
<li>
<p>Long press the tab manager button, check &quot;Videos only&quot; for video sites and &quot;Images only&quot; for image sites. Other AD blocking options are &quot;Hide pseudo elements&quot; and &quot;Hide iframes&quot;.</p>
<ul>
<li>Add prefix &quot;i:0mc32:&quot; to url when bookmarking, then the option &quot;Images only&quot; applies to whole url subtree. Similarly, &quot;c16&quot; for the option &quot;Videos only&quot; and &quot;c12&quot; for hiding both pseudo elements and iframes.</li>
<li>Long press the button [☰], check the option &quot;Fullscreen autoplay&quot;. Videos are autoplayed in fullscreen mode, ADs have no chance to appear.</li>
</ul>
</li>
<li>
<p>Long press the setting button, check the option &quot;Block external scripts&quot;. <a href="i:61:https://fastly.jsdelivr.net/gh/torappinfo/uwebzh/en/searchurl/func.html">UI</a> website has option to also block dubious 3rd party resources. <a href="file:///sdcard/uweb/js.allow">js.allow</a> whitelists js libraries.</p>
</li>
<li>
<p>Long press the button [☰], &quot;Disable floating ADs&quot;, &quot;Disable banners&quot;, &quot;clear all timers&quot;, &quot;stop events&quot; and &quot;Sleep ...&quot; are also available.</p>
</li>
<li>
<p>Click the button with image icon to hide all images.</p>
</li>
<li>
<p>Click the button &quot;JS&quot; to disable javascript.</p>
</li>
<li>
<p><a href="file:///sdcard/uweb/url.deny">url.deny</a>: one giant regular expression for blocked urls (java grammar), in which carriage returns (CR or newline) are ignored and &quot;#&quot; is for comments.</p>
</li>
</ul>
</div>
</body>
</html>

62
en/bookmarklet/index.html Normal file
View File

@ -0,0 +1,62 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/uwebzh/style.css" type="text/css" />
<title>Bookmarklets</title>
<script type="text/javascript">
function nav2(page){
let href = location.href;
for(let i=href.length-1;i>0;i--){
if('/'==href.charAt(i) && '/'==href.charAt(i-3))
location.href = href.substring(0,i+1)+page;
}
return false;
}
</script>
</head>
<body>
<header class='header'>
<a class="logo" href="javascript:void(0)" onclick="return nav2('index.html')">Home</a> <a class="logo" href="javascript:void(0)" onclick="return nav2('tags/index.html')">Tags</a>
<nav>
</nav>
</header>
<br />
<div class="container">
<h1 class="title">Bookmarklets
<br>
<span class="subtitle"></span>
</h1>
<ul class="tags">
<li><a href="../tags/javascript">javascript</a> </li>
</ul>
<p>With a href=&quot;../index.html&quot;&gt;uweb browser</a>, long pressing any bookmarklet link, click &quot;Open in new tab&quot;, the bookmarklet will be run on the last other tab.</p>
<p><a href="javascript:{let es=document.getElementsByTagName('script');let urls='';for(let i=0;i<es.length;i++){if(es[i].src)urls+=es[i].src+'<br>';}let w=window.open(''),s=w.document;s.write(urls);s.close();w.location.href='i:631:';}">List all script urls</a></p>
<p><a target="_self" href="javascript:alert(navigator.userAgent)">User agent</a><br>
<a href="javascript:(function(){var w=window.open(''),s=w.document;s.write('<html><body></body></html>');s.close();var pre=s.body.appendChild(s.createElement('pre'));pre.style.overflow='auto';pre.style.whiteSpace='pre-wrap';pre.appendChild(s.createTextNode(document.cookie))})()">Cookie</a><br>
<a href="javascript:(function(){var w=window.open(''),s=w.document;s.write('<html><body></body></html>');s.close();var pre=s.body.appendChild(s.createElement('pre'));pre.style.overflow='auto';pre.style.whiteSpace='pre-wrap';pre.appendChild(s.createTextNode(document.documentElement.innerHTML))})()">Source code</a><br>
<a href="javascript:function%20gett(w){try{var%20lm=new%20Date(w.document.lastModified);if(lm>maxd)maxd=lm;for(var%20i=0;F=w.frames[i];i++){gett(F);}}catch(e){}}var%20now=new%20Date();var%20maxd=new%20Date(document.lastModified);gett(window);if(maxd.getTime()==0||now.toUTCString()==maxd.toUTCString()){alert('Page%20is%20dynamically%20generated,%20cannot%20determine%20date.');}else{alert('Page%20was%20last%20modified%20'+maxd.toLocaleString());}" class="bookmarklet" rel="nofollow">Last modified date</a></p>
<p><a href="javascript:(function(){var script=document.createElement('script');script.src='//fastly.jsdelivr.net/npm/eruda';document.body.appendChild(script);script.onload=function(){eruda.init()}})()">Eruda: mobile console</a><br>
<a href="javascript:window.open('https://api.qrserver.com/v1/create-qr-code/?size=150x150&data='%20+%20decodeURIComponent(location.href));void(0);">QR code generation</a></p>
<p><a href="javascript:(function(){var x,i; x = document.forms; for (i = 0; i &lt; x.length; ++i) x[i].method=&quot;get&quot;; alert(&quot;Changed &quot; + x.length + &quot; forms to use the GET method. After submitting a form from this page, you should be able to bookmark the result.&quot;); })();">Use &quot;GET&quot; method for &quot;POST&quot;</a><br>
<a href="javascript:(function(){var i,f,j,e,div,label,ne; for(i=0;f=document.forms[i];++i)for(j=0;e=f[j];++j)if(e.type==&quot;hidden&quot;){ D=document; function C(t){return D.createElement(t);} function A(a,b){a.appendChild(b);} div=C(&quot;div&quot;); label=C(&quot;label&quot;); A(div, label); A(label, D.createTextNode(e.name + &quot;: &quot;)); e.parentNode.insertBefore(div, e); e.parentNode.removeChild(e); ne=C(&quot;input&quot;);/*for ie*/ ne.type=&quot;text&quot;; ne.value=e.value; A(label, ne); --j;}})()">Shows all form elements</a><br>
<a href="javascript:(function(){var x,k,f,j;x=document.forms;for (k=0;k&lt;x.length;++k){f=x[k];for(j=0;j&lt;f.length;++j){f[j].disabled=false; f[j].readOnly=false;}}})()">Enables all form elements</a></p>
<p><a href="javascript:(function(){function toggle(box){temp=box.onchange;box.onchange=null;box.checked=!box.checked;box.onchange=temp;}var f=document.querySelectorAll(%22input[type='checkbox']%22);var j;for(j=0;j<f.length;++j)toggle(f[j]);})()">Toggle checkboxes</a><br>
<a href="javascript:(function(){function set(box,bChecked){temp=box.onchange;box.onchange=null;box.checked=bChecked;box.onchange=temp;}var f=document.querySelectorAll(%22input[type='checkbox']%22);var j;for(j=0;j<f.length;++j)set(f[j],true);})()">Check all checkboxes</a><br>
<a href="javascript:(function(){function set(box,bChecked){temp=box.onchange;box.onchange=null;box.checked=bChecked;box.onchange=temp;}var f=document.querySelectorAll(%22input[type='checkbox']%22);var j;for(j=0;j<f.length;++j)set(f[j],false);})()">Uncheck all checkboxes</a><br>
<a href="javascript:(function(){ function toggle(box){ temp=box.onchange; box.onchange=null; box.checked=!box.checked; box.onchange=temp; } var x,k,f,j; x=document.forms; for (k=0; k<x.length; ++k) { f=x[k]; for (j=0;j<f.length;++j) if (f[j].type.toLowerCase() == &quot;checkbox&quot;) toggle(f[j]); } })();">Toggle all checkboxes in forms</a><br>
<a href="javascript:(function(){var%20doc=document;var%20bd=doc.body;bd.onselectstart=bd.oncopy=bd.onpaste=bd.onkeydown=bd.oncontextmenu=bd.onmousemove=bd.onselectstart=bd.ondragstart=doc.onselectstart=doc.oncopy=doc.onpaste=doc.onkeydown=doc.oncontextmenu=null;doc.onselectstart=doc.oncontextmenu=doc.onmousedown=doc.onkeydown=null;void(0)})()">Enable selection</a><br>
<a href="javascript:(function() { function R(a){ona = &quot;on&quot;+a; if(window.addEventListener) window.addEventListener(a, function (e) { for(var n=e.originalTarget; n; n=n.parentNode) n[ona]=null; }, true); window[ona]=null; document[ona]=null; if(document.body) document.body[ona]=null; } R(&quot;contextmenu&quot;); R(&quot;click&quot;); R(&quot;mousedown&quot;); R(&quot;mouseup&quot;); })()">Restore context menu</a><br>
<a href="javascript:(function(){var count=0, text, regexp;text=prompt(&quot;Search regexp:&quot;, &quot;&quot;);if(text==null || text.length==0)return;try{regexp=new RegExp(&quot;(&quot; + text +&quot;)&quot;, &quot;i&quot;);}catch(er){alert(&quot;Unable to create regular expression using text '&quot;+text+&quot;'.\n\n&quot;+er);return;}function searchWithinNode(node, re){var pos, skip, spannode, middlebit, endbit, middleclone;skip=0;if( node.nodeType==3 ){pos=node.data.search(re);if(pos>=0){spannode=document.createElement(&quot;SPAN&quot;);spannode.style.backgroundColor=&quot;yellow&quot;;middlebit=node.splitText(pos);endbit=middlebit.splitText(RegExp.$1.length);middleclone=middlebit.cloneNode(true);spannode.appendChild(middleclone);middlebit.parentNode.replaceChild(spannode,middlebit);++count;skip=1;}}else if( node.nodeType==1 &amp;&amp; node.childNodes &amp;&amp; node.tagName.toUpperCase()!=&quot;SCRIPT&quot; &amp;&amp; node.tagName.toUpperCase!=&quot;STYLE&quot;){for (var child=0; child < node.childNodes.length; ++child){child=child+searchWithinNode(node.childNodes[child], re);}}return skip;}window.status=&quot;Searching for &quot;+regexp+&quot;...&quot;;searchWithinNode(document.body, regexp);window.status=&quot;Found &quot;+count+&quot; match&quot;+(count==1?&quot;&quot;:&quot;es&quot;)+&quot; for &quot;+regexp+&quot;.&quot;;})();">Search with regex</a><br>
<a href="javascript:function toArray (c){var a, k;a=new Array;for (k=0; k<c.length; ++k)a[k]=c[k];return a;}function insAtTop(par,child){if(par.childNodes.length) par.insertBefore(child, par.childNodes[0]);else par.appendChild(child);}function countCols(tab){var nCols, i;nCols=0;for(i=0;i<tab.rows.length;++i)if(tab.rows[i].cells.length>nCols)nCols=tab.rows[i].cells.length;return nCols;}function makeHeaderLink(tableNo, colNo, ord){var link;link=document.createElement('a');link.href='javascript:sortTable('+tableNo+','+colNo+','+ord+');';link.appendChild(document.createTextNode((ord>0)?'a':'d'));return link;}function makeHeader(tableNo,nCols){var header, headerCell, i;header=document.createElement('tr');for(i=0;i<nCols;++i){headerCell=document.createElement('td');headerCell.appendChild(makeHeaderLink(tableNo,i,1));headerCell.appendChild(document.createTextNode('/'));headerCell.appendChild(makeHeaderLink(tableNo,i,-1));header.appendChild(headerCell);}return header;}g_tables=toArray(document.getElementsByTagName('table'));if(!g_tables.length) alert(&quot;This page doesn't contain any tables.&quot;);(function(){var j, thead;for(j=0;j<g_tables.length;++j){thead=g_tables[j].createTHead();insAtTop(thead, makeHeader(j,countCols(g_tables[j])))}}) ();function compareRows(a,b){if(a.sortKey==b.sortKey)return 0;return (a.sortKey < b.sortKey) ? g_order : -g_order;}function sortTable(tableNo, colNo, ord){var table, rows, nR, bs, i, j, temp;g_order=ord;g_colNo=colNo;table=g_tables[tableNo];rows=new Array();nR=0;bs=table.tBodies;for(i=0; i<bs.length; ++i)for(j=0; j<bs[i].rows.length; ++j){rows[nR]=bs[i].rows[j];temp=rows[nR].cells[g_colNo];if(temp) rows[nR].sortKey=temp.innerHTML;else rows[nR].sortKey=&quot;&quot;;++nR;}rows.sort(compareRows);for (i=0; i < rows.length; ++i)insAtTop(table.tBodies[0], rows[i]);}">Table re-order</a></p>
<p><a href="javascript: (function() { var url = ('http://www.bugmenot.com/view/' + escape(location.hostname)); w = open(url, 'w', 'location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=500,height=400,modal=yes,dependent=yes'); if (w) { setTimeout('w.focus()', 1000) } else { location = url } })();">BugMeNot</a></p>
</div>
</body>
</html>

View File

@ -29,6 +29,11 @@
<ul class="posts">
<li class="post">
<a href="../zh/index.html">
<span>中文</span>
</a>
</li>
<li class="post">
<a href="https://s1.asytech.cn/s/tQrgT5kBRg8Trry">
<span>Download the uweb browser</span>
@ -65,6 +70,24 @@
</a>
</li>
<li class="post">
<a href="adblock/index.html">
<span>AD blocking</span>
</a>
</li>
<li class="post">
<a href="bookmarklet/index.html">
<span>Bookmarklets</span>
</a>
</li>
<li class="post">
<a href="sitejs/index.html">
<span>Javascript and CSS for domains</span>
</a>
</li>
<li class="post">

View File

@ -12,7 +12,7 @@
<pubDate>Sat, 02 Jul 2022 00:00:00 +0000</pubDate>
<guid>/en/sitemap/</guid>
<description>UI Search engines Home screen Quick start UI (gitee) Backup and restore Customization Bottom toolbar button long pressing menus User agents Javascript Url services Links Commands Remote javascript Menu for selections Menu for long pressing hypertext Toolbar Gestures Font settings Advanced Content ADs block CSS styles redirection Javascript and CSS for domains Offline cache Tools Bookmarklets Custom file handling Html5 application File manager Tools Termux GNU bc Gnuplot tcron Offline download Miscellaneous Configuration files Plugins Tips Tips Video Debug </description>
<description>UI Search engines Home screen Quick start UI (gitee) Backup and restore Customization Bottom toolbar button long pressing menus User agents Javascript Url services Links Commands Remote javascript Menu for selections Menu for long pressing hypertext Toolbar Gestures Font settings Advanced Content AD blocking CSS styles redirection Javascript and CSS for domains Offline cache Tools Bookmarklets Custom file handling Html5 application File manager Tools Termux GNU bc Gnuplot tcron Offline download Miscellaneous Configuration files Plugins Tips Tips Video Debug </description>
</item>
<item>
@ -46,5 +46,50 @@ Long pressing the bookmark button in uweb browser will popup menus defined in fi
in which space and later parts are optional. url and later parts support &amp;quot;%u&amp;quot;,&amp;quot;%s&amp;quot; etc.. The javascript code will be executed after url is fully loaded.</description>
</item>
<item>
<title>AD blocking</title>
<link>/en/adblock/</link>
<pubDate>Sat, 25 Jun 2022 00:00:00 +0000</pubDate>
<guid>/en/adblock/</guid>
<description>Host blocking。
Use bookmarklet &amp;quot;list all script urls&amp;quot; to generate url links, long pressing dubious script (usually 3rd-party library) link, click &amp;quot;Block domain root&amp;quot;. Javascript and CSS for domains。
Long press the button &amp;quot;js&amp;quot;, click the menu &amp;quot;MarkAD mode&amp;quot;. In &amp;quot;markAD mode&amp;quot;, click page element to show all attributes and generate CSS AD blocking styles. By default, &amp;quot;display:none&amp;quot; is used. If &amp;quot;display&amp;quot; appears in the attribute information, recommend to use &amp;quot;transform:scale(0)!</description>
</item>
<item>
<title>Bookmarklets</title>
<link>/en/bookmarklet/</link>
<pubDate>Fri, 24 Jun 2022 00:00:00 +0000</pubDate>
<guid>/en/bookmarklet/</guid>
<description>With a href=&amp;quot;../index.html&amp;quot;&amp;gt;uweb browser, long pressing any bookmarklet link, click &amp;quot;Open in new tab&amp;quot;, the bookmarklet will be run on the last other tab.
List all script urls
User agent
Cookie
Source code
Last modified date
Eruda: mobile console
QR code generation
Use &amp;quot;GET&amp;quot; method for &amp;quot;POST&amp;quot;
Shows all form elements
Enables all form elements
Toggle checkboxes
Check all checkboxes
Uncheck all checkboxes
Toggle all checkboxes in forms
Enable selection</description>
</item>
<item>
<title>Javascript and CSS for domains</title>
<link>/en/sitejs/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/en/sitejs/</guid>
<description>Javascript (load when page completes, earliest loaded JS should use sitecss).
Need to be named as &amp;quot;[domain root].js&amp;quot;, such as &amp;quot;yahoo.com.js&amp;quot; or &amp;quot;finance.yahoo.com.js&amp;quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded. Script must be put under the folder &amp;quot;/sdcard/uweb/sitejs&amp;quot; or &amp;quot;/data/data/info.torapp.uweb/files/sitejs&amp;quot;. The later folder has the priority. Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Run user scripts&amp;quot;.</description>
</item>
</channel>
</rss>

View File

View File

@ -1,46 +0,0 @@
<!DOCTYPE html><html><head><meta name='viewport' content='width=device-width'><meta charset='utf-8'>
<title>用户协议 | 超微浏览器</title></head><body>
<h2 id="概述">概述</h2> <p>本产品隶属于常熟道信软件有限公司,请您在使用本产品之前仔细阅读下列条款。您下载、安装或使用产本品或者单击“我同意”表明您已经阅读本协议并充分理解、遵守本协议所有条款,包括涉及免除或者限制本公司责任的免责条款、用户权利限制条款、约定争议解决方式等,这些条款均用粗体字标注。如果您不同意本协议的全部或部分内容,请不要下载、安装和使用本产品。</p>
<h2 id="1-权利声明">1. 权利声明</h2><h3 id="1-1-知识产权。">1.1 知识产权。</h3><p>本公司拥有“本产品”的所有权和知识产权等全部权利。本产品受中国及其他国家的知识产权法、国际知识产权公约(包括但不限于著作权法、商标法、专利法等)的保护。所有未授予您的权利均被本公司保留,您不可以从本产品上移除本公司的版权标记或其他权利声明。</p>
<h3 id="1-2-软件所有权保留。" class="article-heading"><a href="#1-2-软件所有权保留。" class="headerlink" title="1.2 软件所有权保留。"></a>1.2 软件所有权保留。<a class="article-anchor" href="#1-2-软件所有权保留。" aria-hidden="true"></a></h3><p>您确定不享有本软件的所有权,本软件未被出售给用户,本公司保留本软件的所有权。</p>
<h2 id="2-授权许可" class="article-heading"><a href="#2-授权许可" class="headerlink" title="2. 授权许可"></a>2. 授权许可<a class="article-anchor" href="#2-授权许可" aria-hidden="true"></a></h2><h3 id="2-1-授权许可。" class="article-heading"><a href="#2-1-授权许可。" class="headerlink" title="2.1 授权许可。"></a>2.1 授权许可。<a class="article-anchor" href="#2-1-授权许可。" aria-hidden="true"></a></h3><p>本公司授予您一项非排他的、不可转让的、非商业性的、可撤销的许可,以下载、安装、备份和使用本产品。本公司授予您仅出于个人非商业目在移动设备上使用本产品,如果您希望将本产品用于其他非本公司授权的目的或其他商业目的,您必须另行取得本公司的单独书面许可。</p>
<h3 id="2-2-限制" class="article-heading"><a href="#2-2-限制" class="headerlink" title="2.2 限制."></a>2.2 限制.<a class="article-anchor" href="#2-2-限制" aria-hidden="true"></a></h3><p>除非就某些第三方软件软件有明文规定或适用法律允许,否则您不得在未取得本公司书面许可的情况下修改、翻译、反向汇编、反向工程、反编译本软件的部分或全部。</p>
<h2 id="3-用户行为-x2F-责任" class="article-heading"><a href="#3-用户行为-x2F-责任" class="headerlink" title="3. 用户行为&#x2F;责任"></a>3. 用户行为&#x2F;责任<a class="article-anchor" href="#3-用户行为-x2F-责任" aria-hidden="true"></a></h2><p>3.1 如果您在使用本公司产品或服务的过程中发布相关用户内容,您需要对自己发布的所有用户内容负责。用户内容是指您发布或以其他方式使用本产品时产生的所有内容(例如:您的信息、声音、图片或其他内容)。您是您的用户内容唯一的责任人,您将承担因您的用户内容违法法律、侵犯第三方权益的所有法律责任。</p>
<p>3.2 在使用过程中,您将承担因下述行为而产生的全部法律责任,本公司不对您的下述行为承担任何责任:</p>
<ul>
<li>破坏宪法所确定的基本原则的;</li>
<li>危害国家安全、泄露国家秘密、颠覆国家政权、破坏国家统一的;</li>
<li>损害国家荣誉和利益的;</li>
<li>煽动民族仇恨、民族歧视,破坏民族团结的;</li>
<li>破坏国家宗教政策,宣扬邪教和封建迷信的;</li>
<li>散布谣言,扰乱社会秩序,破坏社会稳定的;</li>
<li>散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;</li>
<li>侮辱或者诽谤他人,侵害他人合法权益的;</li>
<li>含有法律、行政法规禁止的其他内容的。</li>
</ul>
<p>3.3 您同意不通过本产品从事下列行为:</p>
<p>发布或分享电脑病毒、蠕虫、恶意代码、故意破坏或改变计算机系统或数据的软件;<br>未经授权,收集其他用户的信息或数据,例如非法收集第三人的个人信息侵犯第三人隐私或其他合法民事权益;<br>用自动化的方式恶意使用本产品,给服务器造成过度的负担或以其他方式干扰或损害本产品服务器和网络链接;<br>在未授权的情况下,尝试访问本产品的服务器数据或通信数据;<br>干扰、破坏本产品其他用户的使用;<br>未经本公司授权,修改、破解、反编译、反汇编、逆向工程本产品,发布本产品的修改版、破解版等;</p>
<p>3.4 费用</p>
<p>我们的大部产品或服务都是是免费的,但部分产品可能会包含相关的付费增值服务内容。您需自行负担使用本产品过程中产生的相关费用,包括但不限于个人上网或第三方(包括但不限于电信或移动通讯提供商)收取的通讯费、信息费等相关费用</p>
<h2 id="4-功能的调整、改进与升级" class="article-heading"><a href="#4-功能的调整、改进与升级" class="headerlink" title="4. 功能的调整、改进与升级"></a>4. 功能的调整、改进与升级<a class="article-anchor" href="#4-功能的调整、改进与升级" aria-hidden="true"></a></h2><p>我们可能对产品进行不时地调整、改进和增减,甚至下线我们部分产品,以不断适应我们的运营需要。任何本产品的更新版本或未来版本或者其他变更同样受到本协议约束。</p>
<h2 id="5-无担保声明" class="article-heading"><a href="#5-无担保声明" class="headerlink" title="5 无担保声明"></a>5 无担保声明<a class="article-anchor" href="#5-无担保声明" aria-hidden="true"></a></h2><p>5.1 本公司在发布本产品之前,已尽可能对产品进行了详尽的技术测试和功能测试,但鉴于电子设备、操作系统、网络环境的复杂性,本公司不能保证本产品会兼容所有用户的电子设备,也无法保证用户在使用本产品过程中能够持续不出现任何技术故障。</p>
<p>5.2 在法律允许的最大限度内,本公司无法对产品或服务做任何明示、暗示和强制的担保,包括但不限于软件的兼容性;产品一定满足您的需求或期望;或产品将不间断的、及时的、安全的、或无错误的运行。</p>
<p>5.3 由于网络环境的自由与开放特征,我们的产品或服可能会被第三方擅自修改、破解发布于互联网,建议用户从本公司的官方应用渠道,如官网、本公司已申请认证的第三方应用商店下载、安装我们的产品,我们不会对任何非官方版本承担任何责任</p>
<p>5.4 本产品支持兼容一些第三方的脚本和广告拦截规则,脚本和规则来源为第三方或用户分享,您应该慎重使用,并自行承担第三方来源脚本或规则带来的后果,和本公司无关。</p>
<p>本产品的一切网络资源均来自互联网,包括用户脚本,广告拦截规则等,鉴于精力有限无法做到完全的审核,请您一旦发现有任何侵权以及危害用户安全的内容,请您务必联系我们我们将第一时间将其移除。 请发送邮件至jamesfengcao at 189.cn</p>
<h2 id="6-赔偿" class="article-heading"><a href="#6-赔偿" class="headerlink" title="6. 赔偿"></a>6. 赔偿<a class="article-anchor" href="#6-赔偿" aria-hidden="true"></a></h2><p>6.1 赔偿。在你违反本协议或你所提供的信息侵犯第三方合法权益而导致直接或间接损失的情况下,你应当赔偿其他用户、本公司、第三方合作伙伴的所有损失、费用或支出。</p>
<p>6.2 赔偿程序。可以通知你及时要求赔偿。然而,本公司未能通知不会减轻你的赔偿义务,除了在某种程度上,未能及时通知你给你造成了实质上的损害。</p>
<p>6.3 额外的责任。你的赔偿义务不是本公司的唯一补救措施,除此之外可能本公司对你依据本协议采取其他补救措施,你的赔偿义务在本协议终止后仍存在。</p>
<h2 id="7-不可抗力与责任限制" class="article-heading"><a href="#7-不可抗力与责任限制" class="headerlink" title="7. 不可抗力与责任限制"></a>7. 不可抗力与责任限制<a class="article-anchor" href="#7-不可抗力与责任限制" aria-hidden="true"></a></h2><p>7.1 不可抗力:本协议有效期间,如若遭受不可抗力事件,任何一方可暂行中止履行本协议项下的义务直至不可抗力事件的影响消除,并且遭受方无需为此承担违约责任,但应及时将不可抗力事件及时通知对方,并尽最大努力克服该事件,减少损失的扩大。不可抗力指各方不能控制、不可预见或即使预见亦无法避免的事件且该事件足以妨碍、影响或延误任何一方根据本协议履行其全部或部分义务。该事件包括但不限于自然灾害、战争、法律法规变更、政府命令、计算机病毒、黑客攻击或基础电信运营商服务中断等。</p>
<p>7.2 损害限制:本公司及其分支,和所属的管理人员、董事、合伙人、雇员、承包商给你造成的所有损害赔偿额度均仅限于你使用产品支付的款额。你放弃对特殊、间接、附带或间接损害要求赔偿的权利,包括并不限于利润损失、收入、使用、或数据和应用的损失,即使本公司知道此类损失的可能性。</p>
<h2 id="8-个人隐私保护" class="article-heading"><a href="#8-个人隐私保护" class="headerlink" title="8. 个人隐私保护"></a>8. 个人隐私保护<a class="article-anchor" href="#8-个人隐私保护" aria-hidden="true"></a></h2><p>保护用户跟个人信息安全、维护用户隐私是我们一贯的理念,并且我们贯穿于产品的开发和运营过程。为不断优化用户体验,我们会收集一下用户使用数据,但不涉及到用户敏感的私人信息,详情请参看我们的<a href="privacy.html">《隐私政策》</a>,了解关于我们收集信息的内容、使用目的以及如何保护你的信息安全,《隐私政策》均构成本协议的一部分。</p>
<h2 id="9-其他" class="article-heading"><a href="#9-其他" class="headerlink" title="9. 其他"></a>9. 其他<a class="article-anchor" href="#9-其他" aria-hidden="true"></a></h2><p>9.1 通知。</p>
<p>所有有关本协议以及隐私政策的疑问、通知、要求或请求,应当用中文写作并发送至本公司邮箱【jamesfengcao at 189.cn】</p>
<p>9.2 本协议的修改。</p>
<p>由于业务的拓展、调整或法规变化等原因,本公司可能会适时修改本协议至被法律所允许的程度。如果调整会对您的权利与义务造成重大影响,我们会尽可能通过电子邮件、应用内通知等方式告知您。我们建议您定期访查看我们的网站和移动应用程序,关注本协议的任何变化。在本协议修改后您继续使用本产品代表您接受修改后的协议内容。</p>
<p>9.3 适用法律和管辖法院。</p>
<p>执行本协议和所有程序引起的纠纷适用法律为中华人民共和国法律、解释。由本协议引起的所有纠纷由我们附属公司的住所地法院管辖。</p>
</body></html>

60
en/sitejs/index.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/uwebzh/style.css" type="text/css" />
<title>Javascript and CSS for domains</title>
<script type="text/javascript">
function nav2(page){
let href = location.href;
for(let i=href.length-1;i>0;i--){
if('/'==href.charAt(i) && '/'==href.charAt(i-3))
location.href = href.substring(0,i+1)+page;
}
return false;
}
</script>
</head>
<body>
<header class='header'>
<a class="logo" href="javascript:void(0)" onclick="return nav2('index.html')">Home</a> <a class="logo" href="javascript:void(0)" onclick="return nav2('tags/index.html')">Tags</a>
<nav>
</nav>
</header>
<br />
<div class="container">
<h1 class="title">Javascript and CSS for domains
<br>
<span class="subtitle"></span>
</h1>
<ul class="tags">
<li><a href="../tags/javascript">javascript</a> </li>
<li><a href="../tags/css">css</a> </li>
</ul>
<p>Javascript (load when page completes, earliest loaded JS should use sitecss).</p>
<ul>
<li>Need to be named as &quot;[domain root].js&quot;, such as &quot;yahoo.com.js&quot; or &quot;finance.yahoo.com.js&quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded.</li>
<li>Script must be put under the folder &quot;/sdcard/uweb/sitejs&quot; or &quot;/data/data/info.torapp.uweb/files/sitejs&quot;. The later folder has the priority.</li>
<li>Long press the button &quot;settings&quot;, check the option &quot;Run user scripts&quot;.</li>
<li>Support 2/3-segment domains. If the length of the last 2-segments of domain is less than 7 (ex. &quot;com.pl&quot;), then it is treated as one segment.</li>
</ul>
<p>CSS style and earliest loaded JS</p>
<ul>
<li>Need to be named as &quot;[domain root].css&quot;, such as yahoo.com.css or finance.yahoo.com.css。</li>
<li>Under folder &quot;/sdcard/uweb/sitecss&quot;.</li>
<li>&quot;[domain root].js&quot; is loaded at the earlieat time.</li>
<li>Long press the button &quot;settings&quot;, check the option &quot;Apply user styles&quot;.</li>
</ul>
<p>If file &quot;/sdcard/uweb/default.css&quot; exists, the style will be applied to all sites without matching [domain root].css.</p>
<p>&quot;sitejs/.js&quot; , &quot;sitecss/.css&quot; and &quot;sitecss/.js&quot; are applied to all non-http urls (file urls etc.).</p>
</div>
</body>
</html>

View File

@ -66,6 +66,58 @@
hreflang="en"
href="/en/links/"
/>
</url><url>
<loc>/en/adblock/</loc>
<lastmod>2022-06-25T00:00:00+00:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/adblock/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/adblock/"
/>
</url><url>
<loc>/en/bookmarklet/</loc>
<lastmod>2022-06-24T00:00:00+00:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/bookmarklet/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/bookmarklet/"
/>
</url><url>
<loc>/en/tags/javascript/</loc>
<lastmod>2022-06-24T00:00:00+00:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/tags/javascript/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/tags/javascript/"
/>
</url><url>
<loc>/en/tags/</loc>
<lastmod>2022-06-24T00:00:00+00:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/tags/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/tags/"
/>
</url><url>
<loc>/en/categories/</loc>
<xhtml:link
@ -79,16 +131,28 @@
href="/en/categories/"
/>
</url><url>
<loc>/en/tags/</loc>
<loc>/en/tags/css/</loc>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/tags/"
href="/zh/tags/css/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/tags/"
href="/en/tags/css/"
/>
</url><url>
<loc>/en/sitejs/</loc>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/sitejs/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/sitejs/"
/>
</url>
</urlset>

View File

@ -65,7 +65,7 @@
<h4 id="advanced">Advanced</h4>
<h5 id="content">Content</h5>
<ul>
<li><a href="../adblock/index.html">ADs block</a></li>
<li><a href="../adblock/index.html">AD blocking</a></li>
<li><a href="../globalcss/index.html">CSS styles</a></li>
<li><a href="../redirect/index.html">redirection</a></li>
<li><a href="../sitejs/index.html">Javascript and CSS for domains</a></li>

43
en/tags/css/index.html Normal file
View File

@ -0,0 +1,43 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/uwebzh/style.css" type="text/css" />
<title>css</title>
<script type="text/javascript">
function nav2(page){
let href = location.href;
for(let i=href.length-1;i>0;i--){
if('/'==href.charAt(i) && '/'==href.charAt(i-3))
location.href = href.substring(0,i+1)+page;
}
return false;
}
</script>
</head>
<body>
<header class='header'>
<a class="logo" href="javascript:void(0)" onclick="return nav2('index.html')">Home</a> <a class="logo" href="javascript:void(0)" onclick="return nav2('tags/index.html')">Tags</a>
<nav>
</nav>
</header>
<br />
<div class="container">
<h1 class="title">css</h1>
<ul class="posts">
<li class="post">
<a href="../../sitejs">
<span>Javascript and CSS for domains</span>
</a>
</li>
</ul>
<ul>
</div>
</body>
</html>

19
en/tags/css/index.xml Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>css on </title>
<link>/en/tags/css/</link>
<description>Recent content in css on </description>
<generator>Hugo -- gohugo.io</generator><atom:link href="/en/tags/css/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Javascript and CSS for domains</title>
<link>/en/sitejs/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/en/sitejs/</guid>
<description>Javascript (load when page completes, earliest loaded JS should use sitecss).
Need to be named as &amp;quot;[domain root].js&amp;quot;, such as &amp;quot;yahoo.com.js&amp;quot; or &amp;quot;finance.yahoo.com.js&amp;quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded. Script must be put under the folder &amp;quot;/sdcard/uweb/sitejs&amp;quot; or &amp;quot;/data/data/info.torapp.uweb/files/sitejs&amp;quot;. The later folder has the priority. Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Run user scripts&amp;quot;.</description>
</item>
</channel>
</rss>

View File

@ -3,6 +3,10 @@
<body>
<ul>
<li><a href="css">css</a> 1</li>
<li><a href="javascript">javascript</a> 2</li>
</ul>
</body>
</html>

View File

@ -4,6 +4,25 @@
<title>Tags on </title>
<link>/en/tags/</link>
<description>Recent content in Tags on </description>
<generator>Hugo -- gohugo.io</generator><atom:link href="/en/tags/index.xml" rel="self" type="application/rss+xml" />
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Fri, 24 Jun 2022 00:00:00 +0000</lastBuildDate><atom:link href="/en/tags/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>javascript</title>
<link>/en/tags/javascript/</link>
<pubDate>Fri, 24 Jun 2022 00:00:00 +0000</pubDate>
<guid>/en/tags/javascript/</guid>
<description></description>
</item>
<item>
<title>css</title>
<link>/en/tags/css/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/en/tags/css/</guid>
<description></description>
</item>
</channel>
</rss>

View File

@ -0,0 +1,49 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/uwebzh/style.css" type="text/css" />
<title>javascript</title>
<script type="text/javascript">
function nav2(page){
let href = location.href;
for(let i=href.length-1;i>0;i--){
if('/'==href.charAt(i) && '/'==href.charAt(i-3))
location.href = href.substring(0,i+1)+page;
}
return false;
}
</script>
</head>
<body>
<header class='header'>
<a class="logo" href="javascript:void(0)" onclick="return nav2('index.html')">Home</a> <a class="logo" href="javascript:void(0)" onclick="return nav2('tags/index.html')">Tags</a>
<nav>
</nav>
</header>
<br />
<div class="container">
<h1 class="title">javascript</h1>
<ul class="posts">
<li class="post">
<a href="../../bookmarklet">
<span>Bookmarklets</span>
</a>
</li>
<li class="post">
<a href="../../sitejs">
<span>Javascript and CSS for domains</span>
</a>
</li>
</ul>
<ul>
</div>
</body>
</html>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>javascript on </title>
<link>/en/tags/javascript/</link>
<description>Recent content in javascript on </description>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Fri, 24 Jun 2022 00:00:00 +0000</lastBuildDate><atom:link href="/en/tags/javascript/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Bookmarklets</title>
<link>/en/bookmarklet/</link>
<pubDate>Fri, 24 Jun 2022 00:00:00 +0000</pubDate>
<guid>/en/bookmarklet/</guid>
<description>With a href=&amp;quot;../index.html&amp;quot;&amp;gt;uweb browser, long pressing any bookmarklet link, click &amp;quot;Open in new tab&amp;quot;, the bookmarklet will be run on the last other tab.
List all script urls
User agent
Cookie
Source code
Last modified date
Eruda: mobile console
QR code generation
Use &amp;quot;GET&amp;quot; method for &amp;quot;POST&amp;quot;
Shows all form elements
Enables all form elements
Toggle checkboxes
Check all checkboxes
Uncheck all checkboxes
Toggle all checkboxes in forms
Enable selection</description>
</item>
<item>
<title>Javascript and CSS for domains</title>
<link>/en/sitejs/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/en/sitejs/</guid>
<description>Javascript (load when page completes, earliest loaded JS should use sitecss).
Need to be named as &amp;quot;[domain root].js&amp;quot;, such as &amp;quot;yahoo.com.js&amp;quot; or &amp;quot;finance.yahoo.com.js&amp;quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded. Script must be put under the folder &amp;quot;/sdcard/uweb/sitejs&amp;quot; or &amp;quot;/data/data/info.torapp.uweb/files/sitejs&amp;quot;. The later folder has the priority. Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Run user scripts&amp;quot;.</description>
</item>
</channel>
</rss>

View File

@ -35,7 +35,7 @@
<li><a href="../tags/javascript">javascript</a> </li>
</ul>
<p><a href="..">超微浏览器</a>支持直接运行远程网址上的小书签(Bookmarklet),将本页面或其它包含小书签网址加入书签。使用时只需长按小书签链接,点击“新窗口打开”,小书签将作用于超微浏览器最后一个窗口(非小书签窗口)页面上。</p>
<p><a href="../index.html">超微浏览器</a>支持直接运行远程网址上的小书签(Bookmarklet),将本页面或其它包含小书签网址加入书签。使用时只需长按小书签链接,点击“新窗口打开”,小书签将作用于超微浏览器最后一个窗口(非小书签窗口)页面上。</p>
<p><a href="javascript:{let es=document.getElementsByTagName('script');let urls='';for(let i=0;i<es.length;i++){if(es[i].src)urls+=es[i].src+'<br>';}let w=window.open(''),s=w.document;s.write(urls);s.close();w.location.href='i:631:';}">列出外部脚本</a></p>
<p><a target="_self" href="javascript:alert(navigator.userAgent)">查看浏览器UA</a><br>
<a href="javascript:(function(){var w=window.open(''),s=w.document;s.write('<html><body></body></html>');s.close();var pre=s.body.appendChild(s.createElement('pre'));pre.style.overflow='auto';pre.style.whiteSpace='pre-wrap';pre.appendChild(s.createTextNode(document.cookie))})()">网页cookie</a><br>

View File

@ -29,6 +29,11 @@
<ul class="posts">
<li class="post">
<a href="../en/index.html">
<span>English</span>
</a>
</li>
<li class="post">
<a href="searchurl/donate.html">
<span>请一杯咖啡,提一个要求</span>

View File

@ -30,9 +30,29 @@
</url><url>
<loc>/zh/adblock/</loc>
<lastmod>2022-06-25T00:00:00+00:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/adblock/"
/>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/adblock/"
/>
</url><url>
<loc>/zh/tags/javascript/</loc>
<lastmod>2022-06-24T00:00:00+00:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/tags/javascript/"
/>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/tags/javascript/"
/>
</url><url>
<loc>/zh/tags/</loc>
<lastmod>2022-06-24T00:00:00+00:00</lastmod>
@ -49,6 +69,16 @@
</url><url>
<loc>/zh/bookmarklet/</loc>
<lastmod>2022-06-24T00:00:00+00:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/bookmarklet/"
/>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/bookmarklet/"
/>
</url><url>
<loc>/zh/sitemap/</loc>
<lastmod>2022-05-28T00:00:00+00:00</lastmod>
@ -68,6 +98,16 @@
</url><url>
<loc>/zh/tags/css/</loc>
<lastmod>2022-05-18T00:00:00+00:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/tags/css/"
/>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/tags/css/"
/>
</url><url>
<loc>/zh/tags/%E4%B8%8D%E8%89%AF%E4%BF%A1%E6%81%AF%E5%B1%8F%E8%94%BD/</loc>
<lastmod>2022-05-18T00:00:00+00:00</lastmod>
@ -228,6 +268,16 @@
<loc>/zh/pcdown/</loc>
</url><url>
<loc>/zh/sitejs/</loc>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/sitejs/"
/>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/sitejs/"
/>
</url><url>
<loc>/zh/tags/%E4%B8%8B%E8%BD%BD/</loc>
</url><url>