www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www/philosophy po/javascript-trap.translist jav...


From: GNUN
Subject: www/philosophy po/javascript-trap.translist jav...
Date: Sat, 25 Nov 2017 07:30:21 -0500 (EST)

CVSROOT:        /web/www
Module name:    www
Changes by:     GNUN <gnun>     17/11/25 07:30:21

Modified files:
        philosophy/po  : javascript-trap.translist 
Added files:
        philosophy     : javascript-trap.zh-cn.html 
        philosophy/po  : javascript-trap.zh-cn-en.html 

Log message:
        Automatic update by GNUnited Nations.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/javascript-trap.zh-cn.html?cvsroot=www&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/po/javascript-trap.translist?cvsroot=www&r1=1.17&r2=1.18
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/po/javascript-trap.zh-cn-en.html?cvsroot=www&rev=1.1

Patches:
Index: po/javascript-trap.translist
===================================================================
RCS file: /web/www/www/philosophy/po/javascript-trap.translist,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- po/javascript-trap.translist        4 Aug 2017 07:31:56 -0000       1.17
+++ po/javascript-trap.translist        25 Nov 2017 12:30:21 -0000      1.18
@@ -16,6 +16,7 @@
 <span dir="ltr"><a lang="pt-br" hreflang="pt-br" 
href="/philosophy/javascript-trap.pt-br.html">português&nbsp;do&nbsp;Brasil</a>&nbsp;[pt-br]</span>
 &nbsp;
 <span dir="ltr"><a lang="ru" hreflang="ru" 
href="/philosophy/javascript-trap.ru.html">русский</a>&nbsp;[ru]</span> 
&nbsp;
 <span dir="ltr"><a lang="uk" hreflang="uk" 
href="/philosophy/javascript-trap.uk.html">українська</a>&nbsp;[uk]</span>
 &nbsp;
+<span dir="ltr"><a lang="zh-cn" hreflang="zh-cn" 
href="/philosophy/javascript-trap.zh-cn.html">简体中文</a>&nbsp;[zh-cn]</span>
 &nbsp;
 </p>
 </div>' -->
 <link rel="alternate" type="text/html" href="/philosophy/javascript-trap.html" 
hreflang="x-default" />
@@ -33,4 +34,5 @@
 <link rel="alternate" type="text/html" lang="pt-br" hreflang="pt-br" 
href="/philosophy/javascript-trap.pt-br.html" title="português do Brasil" />
 <link rel="alternate" type="text/html" lang="ru" hreflang="ru" 
href="/philosophy/javascript-trap.ru.html" title="русский" />
 <link rel="alternate" type="text/html" lang="uk" hreflang="uk" 
href="/philosophy/javascript-trap.uk.html" title="українська" />
+<link rel="alternate" type="text/html" lang="zh-cn" hreflang="zh-cn" 
href="/philosophy/javascript-trap.zh-cn.html" title="简体中文" />
 <!-- end translist file -->

Index: javascript-trap.zh-cn.html
===================================================================
RCS file: javascript-trap.zh-cn.html
diff -N javascript-trap.zh-cn.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ javascript-trap.zh-cn.html  25 Nov 2017 12:30:20 -0000      1.1
@@ -0,0 +1,178 @@
+<!--#set var="ENGLISH_PAGE" value="/philosophy/javascript-trap.en.html" -->
+
+<!--#include virtual="/server/header.zh-cn.html" -->
+<!-- Parent-Version: 1.79 -->
+
+<!-- This file is automatically generated by GNUnited Nations! -->
+<title>JavaScript的陷阱</title>
+
+<!--#include virtual="/philosophy/po/javascript-trap.translist" -->
+<!--#include virtual="/server/banner.zh-cn.html" -->
+<h2>JavaScript的陷阱</h2>
+
+<p><a href="http://www.stallman.org/";>Richard Stallman</a> 著</p>
+
+<p><strong>ä½ 
可能每天都在自己的电脑上运行非自由软件却毫不知情
&mdash;通过使用你的浏览器。</strong></p>
+
+<!-- any links that used to point to the appendices should point to
+     free-your-javascript.html instead.  -->
+<blockquote>
+<p>网络管理员:有<a
+href="/software/librejs/free-your-javascript.html">好几
种方法</a>可以指示网站的JavaScript程序的许可证。</p>
+</blockquote>
+
+<p>在自由软件社区,非自由软件会侵害å…
¶ç”¨æˆ·çš„概念大家都很熟悉。有些人会拒绝在电脑上使用任何专属软件,以此来捍卫自己的自由。还有许多人意识到非自由并拒绝那些程序。</p>
+
+<p>许多用户知道浏览器要求安装的插件有此问题,因
为它们可能是自由软件,也可能是非自由软件。但是浏览器也会运行不要求ä½
 è®¸å¯çš„其他非自由软件,甚至也不告诉你
&mdash;网页带有或链接了哪些程序。这些程序多数是用JavaScript编写的,虽然å
…¶ä»–语言也是可以的。</p>
+
+<p>JavaScript(正式名称是ECMAScript,但是很少有人用了)曾经用于不重要的网页è£
…
饰,比如可爱但是并不重要的导航和显示功能。可以认为这些只是HTMLæ
 ‡è®°è¯­è¨€çš„扩展,而不是真正的软件,这æ 
·å°±å¯ä»¥å¿½ç•¥å®ƒçš„问题。</p>
+
+<p>许多网站仍然这æ 
·ä½¿ç”¨JavaScript,但是有一些网站用它作为完成任务的主要程序。例如,Google
+Docs会尝试在你
的电脑里下载大约500k字节的JavaScript程序,该程序使用一种我们称之为模糊脚本(Obfuscript)的紧密æ
 ¼å¼ï¼Œæ²¡æœ‰æ³¨é‡Šï¼Œä¹Ÿå°‘有空格,而å…
¶æ–¹æ³•çš„名称只有一个字母。一个程序的源代ç 
åº”该是有利于修改程序的形式;这种紧密格式不是源代ç 
ï¼Œå…¶æºä»£ç æ²¡æœ‰æä¾›ç»™ç”¨æˆ·ã€‚</p>
+
+<p>除了不是自由软件,许多这类程序都是恶意软件,因
为它们<a
+href="http://github.com/w3c/fingerprinting-guidance/issues/8";>嗅
探用户</a>。</p>
+
+<p>浏览器一般不会告诉你它们什么时候会加
è½½JavaScript程序。有些浏览器提供了完å…
¨ç¦ç”¨JavaScript的方法,可是即使你知道有问题,你
还是需要花很多精力去确认这些非自由软件并拦截它们。然而,就连自由软件社区的大多数用户都不知道这个有问题;而浏览器的沉默也好似在掩盖这个问题。</p>
+
+<p>可以把JavaScript程序发布为自由软件,使用自由软件许可证发布å
…¶æºä»£ç 
å°±è¡Œã€‚如果该程序是自给自足的&mdash;如果它的功能和目的独立于它所应用的网站&mdash;这就没问题;ä½
 å¯ä»¥å°†å…¶æ‹·è´åˆ°ä½ çš„电脑,修改它,使用浏览器加
载它并运行它。但是这并不是其通常的情形。</p>
+
+<p>通常情
况下,JavaScript程序会和特定的网页或网站一起工作,而那个网页或网站有了这个程序才能正常工作。这就出现了另一个问题:即使有源程序,浏览器也æ—
 æ³•è¿è¡Œä½ ä¿®æ”¹çš„版本,除非你
使用原来的版本访问特定的网站或网页。这个效果和tivoization<sup><a
+href="#TransNote1">1</a></sup>类似,虽然从æ 
¹æœ¬ä¸Šä¸æ˜¯é‚£ä¹ˆéš¾ä»¥è§£å†³ã€‚</p>
+
+<p>JavaScript不是网站发送到用户的程序使用的唯一语言。Flash支持用一种扩展的JavaScript语言编程;如果我们有足够完整的自由Flash播放器,我们就可以对付非自由Flash程序带来的问题。Silverlight似乎也和Flash一æ
 ·åˆ›å»ºä¸€äº›ç¨‹åºï¼Œå¯èƒ½æ›´ç³Ÿï¼Œå› 
为微软使用它作为非自由编解ç 
å™¨çš„平台。自由的Silverlight替代不能为自由世界正常工作,除非它还带有自由的编解ç
 æ›¿ä»£ã€‚</p>
+
+<p>Java小程序<sup><a
+href="#TransNote2">2</a></sup>也会在浏览器里运行,也就有同æ 
·çš„问题。一般来说,各种小程序系统都有这æ 
·çš„问题。创建一个运行小程序的自由环境仅仅
是让我们能够看到这个问题。</p>
+
+<p>理论上能够使用HTML和CSS编程,但是实际
上它不方便而且受限制;最多只是展示一些令人惊奇的黑客编程技巧。这些程序理应是自由的,但CSS在2106年还不是影响用户自由的严重问题。</p>
+
+<p>已经有一个强大的运动,它号召网站只使用自由(有的人叫&quot;开放&quot;)的æ
 ¼å¼å’Œåè®®æ¥é€šè®¯ï¼›å°±æ˜¯è¯´ï¼Œå®ƒä»¬çš„文档应该å…
¬å¼€ï¼Œè€Œä¸”任何人都有自由来实现。当网页带有程序时,这个æ
 ‡å‡†æ˜¯å¿…要的,但是并不充分。JavaScript本身,作为一种æ 
¼å¼ï¼Œæ˜¯è‡ªç”±çš„,而且在网站上使用JavaScript并不必
然是坏事。然而,正如以上所看到的,它也不必
然就是好事。当网站将程序转移到用户,程序只是由有文档、不受限制的语言编写并不足够;该程序å¿
…须也是自由的。&ldquo;只许把自由软件转移到用户&rdquo;必
须成为网站行为规范的准则。</p>
+
+<p>不动声色地加
载和运行非自由软件只是&quot;网络应用&quot;带来的诸多问题之一。&quot;网络应用&quot;这一术语就是用来抹杀用户软件和服务器软件的æ
 
¹æœ¬åŒºåˆ«ã€‚它可以指运行在浏览器里的特定客户端软件;它也可以指特定的服务器软件;它还可以指和特定服务器软件紧密协作的客户端软件。客户端和服务器端有不同的道德问题,即使它们如此紧密地协作,以至于可以说它们是一个软件的不同部分。本文只讨论客户端软件的问题。我们会分开讨论服务器端的软件。</p>
+
+<p>实际
操作中,我们应该如何对付网站上非自由JavaScript程序带来的问题呢?第一步就是避å
…è¿è¡Œå®ƒã€‚</p>
+
+<p>什么是我们说的&quot;非平凡&quot;呢?它表示的是程度,所以它是指设计一种简明的æ
 ‡å‡†æ¥èŽ·å¾—好的结果,而不是去寻求唯一正确的答案。</p>
+<p>
+我们目前的政策认为一个JavaScript程序是非平凡的,如果:</p>
+
+<ul>
+  <li>该程序创建AJAX请求或同创建AJAX请求的脚本一起加
载,</li>
+
+  <li>该程序动态加载外部脚本或者同加
载外部脚本的脚本一起加载,</li>
+
+  <li>该程序定义函数或方法来加载外部脚本(从html),或者
这些函数和方法本身就作为外部脚本被加载,</li>
+  
+  
<li>该程序要么使用动态JavaScript结构,这些结构在不了解该程序的æƒ
…况下很难分析,要么该程序和使用这些结构的脚本一起加
载。这些结构是:
+    <ul>
+      <li>使用eval函数,</li>
+      <li>调用带有方括号表达式的方法,</li>
+      <li>使用超
出某些(诸如Obj.write、Obj.createElement、...)方法名称之外的å…
¶ä»–结构。</li>
+    </ul>
+  </li>
+</ul>
+
+<p>我们如何判别JavaScript代码是否是自由的?在<a
+href="/licenses/javascript-labels.html">另一篇文章
</a>中,我们提议了一种方法,它指出网页带有的非平凡JavaScript程序可以使用风æ
 ¼åŒ–的注释来表达获得其源代码的URL,也可以表达å…
¶è®¸å¯è¯ã€‚</p>
+
+<p>最后,我们需要修改自由的浏览器,使它们可以探测并拦截网页上非平凡、非自由的JavaScript。<a
+href="/software/librejs/">LibreJS</a>程序就可以探测到你
访问的网页上的非自由、非平凡的JavaScript,并拦截之。LibreJSåŒ
…含在IceCat浏览器中,也可以作为Firefox的附加组件。</p>
+
+<p>浏览器用户还需要方便的工å…
·æ¥æŒ‡å®šéœ€è¦ä½¿ç”¨çš„JavaScript代ç 
ï¼Œ<em>而不是</em>使用网页上的JavaScript代码。(指定的代ç 
å¯ä»¥æ˜¯å®Œå…
¨çš„替代,也可以是页面上的自由JavaScript程序的修改版。)Greasemonkey已经快能够做到这一点,但是还没有,å›
 
为它不能保证在页面上的JavaScript程序运行之前就做出修改。使用本地的代理可以工作,但是作为真正的解决方案还是太不方便。我们需要构建一个可é
 
和方便的解决方案,也要构建一个分享修改方法的网站。GNU工程愿意推荐那些只致力于分享自由修改方法的网站。</p>
+
+<p>这些措施使网页带有的JavaScript程序变成实际
和真正意义上的自由软件成为可能。JavaScript就不再是阻碍我们自由的特别障碍&mdash;就象现在的C和Java那æ
 
·ã€‚我们将来能够拒绝、甚至替换掉非自由和非平凡的JavaScript程序,就像我们拒绝和替换那些以通常形式安è£
…的非自由软件包一æ 
·ã€‚那时,我们就能够开始让网站提供自由JavaScript程序的活动了。</p>
+
+<p>与此同时,在一种情
形下运行非自由JavaScript程序是可以接受的:使用它来向网站操作员抱怨该网站应该移除JavaScript代ç
 æˆ–者使它自由。请不要犹豫,你
可以暂时启用JavaScript做这件事&mdash;之后别忘了再禁用它就好。</p>
+
+<!-- any links that used to point to the appendices should point to
+     free-your-javascript.html instead.  -->
+<blockquote>
+<p>网络管理员:有<a
+href="/software/librejs/free-your-javascript.html">好几
种方法</a>可以指示网站的JavaScript程序的许可证。</p>
+</blockquote>
+
+<p><strong>致谢:</strong>我感谢<a 
href="/people/people.html#mattlee">Matt Lee</a>和<a
+href="http://ejohn.org";>John 
Resig</a>,他们帮助我们定义了我们提议的标准,还感谢David
+Parunakian提醒我关注此问题。</p>
+
+<div class="translators-notes">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
+<h3>译注</h3>
+<ol>
+<li
+id="TransNote1">tivoization,是一种电脑工具,它包含在GPL软件内
但你却不能修改它,因为一旦发现软件遭到修改它就会自动å…
³é—­ã€‚</li>
+<li 
id="TransNote2">applet,是一种小程序,可以在特定的环境下独立运行。</li>
+</ol></div>
+</div>
+
+<!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.zh-cn.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>请将有关自由软件基金会(FSF) &amp; 
GNU的一般性问题发送到<a
+href="mailto:address@hidden";>&lt;address@hidden&gt;</a>。也可以通过<a
+href="/contact/">其他联系方法</a>联系自由软件基金会(FSF)。有å…
³å¤±æ•ˆé“¾æŽ¥æˆ–其他错误和建议,请发送邮件到<a
+href="mailto:address@hidden";>&lt;address@hidden&gt;</a>。</p>
+
+<p>
+<!-- TRANSLATORS: Ignore the original text in this paragraph,
+        replace it with the translation of these two:
+
+        We work hard and do our best to provide accurate, good quality
+        translations.  However, we are not exempt from imperfection.
+        Please send your comments and general suggestions in this regard
+        to <a href="mailto:address@hidden";>
+
+        &lt;address@hidden&gt;</a>.</p>
+
+        <p>For information on coordinating and submitting translations of
+        our web pages, see <a
+        href="/server/standards/README.translations.html">Translations
+        README</a>. -->
+若您想翻译本文,请参看<a
+href="/server/standards/README.translations.html">翻译须知</a>获取有å…
³åè°ƒå’Œæäº¤ç¿»è¯‘的相关事项。</p>
+</div>
+
+<!-- Regarding copyright, in general, standalone pages (as opposed to
+     files generated as part of manuals) on the GNU web server should
+     be under CC BY-ND 4.0.  Please do NOT change or remove this
+     without talking with the webmasters or licensing team first.
+     Please make sure the copyright date is consistent with the
+     document.  For web pages, it is ok to list just the latest year the
+     document was modified, or published.
+     
+     If you wish to list earlier years, that is ok too.
+     Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
+     years, as long as each year in the range is in fact a copyrightable
+     year, i.e., a year in which the document was published (including
+     being publicly visible on the web or in a revision control system).
+     
+     There is more detail about copyright years in the GNU Maintainers
+     Information document, www.gnu.org/prep/maintain. -->
+<p>Copyright &copy; 2009-2013, 2016, 2017 Richard Stallman</p>
+
+<p>本页面使用<a rel="license"
+href="http://creativecommons.org/licenses/by-nd/4.0/";>Creative Commons
+Attribution-NoDerivatives 4.0 International License</a>授权。</p>
+
+<!--#include virtual="/server/bottom-notes.zh-cn.html" -->
+<div class="translators-credits">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
+<b>翻译团队</b>:<a rel="team"
+href="https://savannah.gnu.org/projects/www-zh-cn/";>&lt;CTT&gt;</a>,2017。</div>
+
+<p class="unprintable"><!-- timestamp start -->
+最后更新:
+
+$Date: 2017/11/25 12:30:20 $
+
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>

Index: po/javascript-trap.zh-cn-en.html
===================================================================
RCS file: po/javascript-trap.zh-cn-en.html
diff -N po/javascript-trap.zh-cn-en.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ po/javascript-trap.zh-cn-en.html    25 Nov 2017 12:30:21 -0000      1.1
@@ -0,0 +1,270 @@
+<!--#include virtual="/server/header.html" -->
+<!-- Parent-Version: 1.79 -->
+<title>The JavaScript Trap</title>
+<!--#include virtual="/philosophy/po/javascript-trap.translist" -->
+<!--#include virtual="/server/banner.html" -->
+
+<h2>The JavaScript Trap</h2>
+
+<p>by <a href="http://www.stallman.org/";>Richard Stallman</a></p>
+
+<p><strong>You may be running nonfree programs on your computer every
+day without realizing it&mdash;through your web browser.</strong></p>
+
+<!-- any links that used to point to the appendices should point to
+     free-your-javascript.html instead.  -->
+
+<blockquote>
+<p>Webmasters: there are
+<a href="/software/librejs/free-your-javascript.html">several ways</a>
+to indicate the license of JavaScript programs in a web site.</p>
+</blockquote>
+
+<p>In the free software community, the idea that nonfree programs
+mistreat their users is familiar.  Some of us defend our freedom by
+rejecting all proprietary software on our computers.  Many others
+recognize nonfreeness as a strike against the program.</p>
+
+<p>Many users are aware that this issue applies to the plug-ins that
+browsers offer to install, since they can be free or nonfree.  But
+browsers run other nonfree programs which they don't ask you about, or
+even tell you about&mdash;programs that web pages contain or link to.
+These programs are most often written in JavaScript, though other
+languages are also used.</p>
+
+<p>JavaScript (officially called ECMAScript, but few use that name)
+was once used for minor frills in web pages, such as cute but
+inessential navigation and display features.  It was acceptable to
+consider these as mere extensions of HTML markup, rather than as true
+software, and disregard the issue.</p>
+
+<p>Many sites still use JavaScript that way, but some use it for major
+programs that do large jobs.  For instance, Google Docs tries to download into
+your machine a JavaScript program which measures half a megabyte, in a
+compacted form that we could call Obfuscript because it has no
+comments and hardly any whitespace, and the method names are one
+letter long.  The source code of a program is the preferred form for
+modifying it; the compacted code is not source code, and the real
+source code of this program is not available to the user.</p>
+
+<p>In addition to being nonfree, many of these programs are malware
+because
+they <a href="http://github.com/w3c/fingerprinting-guidance/issues/8";>snoop
+on the user</a>.</p>
+
+<p>Browsers don't normally tell you when they load JavaScript
+programs.  Some browsers have a way to turn off JavaScript entirely,
+but even if you're aware of this issue, it would take you considerable
+trouble to identify the nontrivial nonfree programs and block them.
+However, even in the free software community most users are not aware
+of this issue; the browsers' silence tends to conceal it.</p>
+
+<p>It is possible to release a JavaScript program as free software, by
+distributing the source code under a free software license.  If the
+program is self-contained&mdash;if its functioning and purpose are
+independent of the page it came in&mdash;that is fine; you can copy it
+to a file on your machine, modify it, and visit that file with a
+browser to run it.  But that is an unusual case.</p>
+
+<p>In the usual case, JavaScript programs are meant to work with a
+particular page or site, and the page or site depends on them to
+function.  Then another problem arises: even if the program's source
+is available, browsers do not offer a way to run your modified version
+instead of the original when visiting that page or site.  The effect
+is comparable to tivoization, although in principle not quite so hard
+to overcome.</p>
+
+<p>JavaScript is not the only language web sites use for programs sent
+to the user.  Flash supports programming through an extended variant
+of JavaScript; if we ever have a sufficiently complete free Flash
+player, we will need to deal with the issue of nonfree Flash programs.
+Silverlight seems likely to create a problem similar to Flash, except
+worse, since Microsoft uses it as a platform for nonfree codecs.  A
+free replacement for Silverlight does not do the job for the free
+world unless it normally comes with free replacement codecs.</p>
+
+<p>Java applets also run in the browser, and raise similar issues.  In
+general, any sort of applet system poses this sort of problem.  Having
+a free execution environment for an applet only brings us far enough
+to encounter the problem.</p>
+
+<p>It is theoretically possible to program in HTML and CSS, but in
+practice this capability is limited and inconvenient; merely to make
+it do something is an impressive hack.  Such programs ought to be
+free, but CSS is not a serious problem for users' freedom as of
+2016.</p>
+
+<p>A strong movement has developed that calls for web sites to
+communicate only through formats and protocols that are free (some say
+&quot;open&quot;); that is to say, whose documentation is published and which
+anyone is free to implement.  With the presence of programs in web
+pages, that criterion is necessary, but not sufficient.  JavaScript
+itself, as a format, is free, and use of JavaScript in a web site is
+not necessarily bad.  However, as we've seen above, it also isn't
+necessarily OK.  When the site transmits a program to the user, it is
+not enough for the program to be written in a documented and
+unencumbered language; that program must be free, too.  &ldquo;Only free
+programs transmitted to the user&rdquo; must become part of the criterion
+for proper behavior by web sites.</p>
+
+<p>Silently loading and running nonfree programs is one among several
+issues raised by &quot;web applications&quot;.  The term &quot;web
+application&quot; was designed to disregard the fundamental
+distinction between software delivered to users and software running
+on a server.  It can refer to a specialized client program running
+in a browser; it can refer to specialized server software; it can
+refer to a specialized client program that works hand in hand with
+specialized server software.  The client and server sides raise
+different ethical issues, even if they are so closely integrated that
+they arguably form parts of a single program.  This article addresses
+only the issue of the client-side software.  We are addressing the
+server issue separately.</p>
+
+<p>In practical terms, how can we deal with the problem of nonfree
+JavaScript programs in web sites?  The first step is to avoid running
+it.</p>
+
+<p>What do we mean by &quot;nontrivial&quot;?  It is a matter of
+degree, so this is a matter of designing a simple criterion that gives
+good results, rather than finding the one correct answer.</p>
+<p>
+Our tentative policy is to consider a JavaScript program nontrivial if:</p>
+
+<ul>
+  <li>it makes an AJAX request or is loaded along with scripts that make
+    an AJAX request,</li>
+
+  <li>it loads external scripts dynamically or is loaded along with
+    scripts that do,</li>
+
+  <li>it defines functions or methods and either loads an external script
+    (from html) or is loaded as one,</li>
+  
+  <li>it uses dynamic JavaScript constructs that are difficult to analyze
+    without interpreting the program, or is loaded along with scripts
+    that use such constructs.  These constructs are:
+    <ul>
+      <li>using the eval function,</li>
+      <li>calling methods with the square bracket notation,</li>
+      <li>using any other construct than a string literal with
+       certain methods (Obj.write, Obj.createElement, ...).</li>
+    </ul>
+  </li>
+</ul>
+
+<p>How do we tell whether the JavaScript code is free?  In a <a 
+href="/licenses/javascript-labels.html">separate article</a>,
+we propose a method by which a nontrivial JavaScript
+program in a web page can state the URL where its source code is
+located, and can state its license too, using stylized comments.</p>
+
+<p>Finally, we need to change free browsers to detect and block
+nontrivial nonfree JavaScript in web pages.  The program
+<a href="/software/librejs/">LibreJS</a> detects nonfree,
+nontrivial JavaScript in pages you visit, and blocks it.  LibreJS is
+included in IceCat, and available as an add-on for Firefox.</p>
+
+<p>Browser users also need a convenient facility to specify JavaScript
+code to use <em>instead</em> of the JavaScript in a certain page.
+(The specified code might be total replacement, or a modified version
+of the free JavaScript program in that page.)  Greasemonkey comes close
+to being able to do this, but not quite, since it doesn't guarantee to
+modify the JavaScript code in a page before that program starts to
+execute.  Using a local proxy works, but is too inconvenient now to be
+a real solution.  We need to construct a solution that is reliable and
+convenient, as well as sites for sharing changes.  The GNU Project
+would like to recommend sites which are dedicated to free changes
+only.</p>
+
+<p>These features will make it possible for a JavaScript program included
+in a web page to be free in a real and practical sense.  JavaScript
+will no longer be a particular obstacle to our freedom&mdash;no more than
+C and Java are now.  We will be able to reject and even replace the
+nonfree nontrivial JavaScript programs, just as we reject and replace
+nonfree packages that are offered for installation in the usual way.
+Our campaign for web sites to free their JavaScript can then begin.</p>
+
+<p>In the mean time, there's one case where it is acceptable to run a
+nonfree JavaScript program: to send a complaint to the website
+operators saying they should free or remove the JavaScript code in the
+site.  Please don't hesitate to enable JavaScript temporarily to do
+that&mdash;but remember to disable it again afterwards.</p>
+
+<!-- any links that used to point to the appendices should point to
+     free-your-javascript.html instead.  -->
+
+<blockquote>
+<p>Webmasters: there are
+<a href="/software/librejs/free-your-javascript.html">several ways</a>
+to indicate the license of JavaScript programs in a web site.</p>
+</blockquote>
+
+<p><strong>Acknowledgements:</strong> I thank <a 
href="/people/people.html#mattlee">Matt Lee</a>
+and <a href="http://ejohn.org";>John Resig</a> for their help in
+defining our proposed criterion, and David Parunakian for
+bringing the problem to my attention.</p>
+
+</div><!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>Please send general FSF &amp; GNU inquiries to
+<a href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.
+There are also <a href="/contact/">other ways to contact</a>
+the FSF.  Broken links and other corrections or suggestions can be sent
+to <a href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.</p>
+
+<p><!-- TRANSLATORS: Ignore the original text in this paragraph,
+        replace it with the translation of these two:
+
+        We work hard and do our best to provide accurate, good quality
+        translations.  However, we are not exempt from imperfection.
+        Please send your comments and general suggestions in this regard
+        to <a href="mailto:address@hidden";>
+        &lt;address@hidden&gt;</a>.</p>
+
+        <p>For information on coordinating and submitting translations of
+        our web pages, see <a
+        href="/server/standards/README.translations.html">Translations
+        README</a>. -->
+Please see the <a
+href="/server/standards/README.translations.html">Translations
+README</a> for information on coordinating and submitting translations
+of this article.</p>
+</div>
+
+<!-- Regarding copyright, in general, standalone pages (as opposed to
+     files generated as part of manuals) on the GNU web server should
+     be under CC BY-ND 4.0.  Please do NOT change or remove this
+     without talking with the webmasters or licensing team first.
+     Please make sure the copyright date is consistent with the
+     document.  For web pages, it is ok to list just the latest year the
+     document was modified, or published.
+     
+     If you wish to list earlier years, that is ok too.
+     Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
+     years, as long as each year in the range is in fact a copyrightable
+     year, i.e., a year in which the document was published (including
+     being publicly visible on the web or in a revision control system).
+     
+     There is more detail about copyright years in the GNU Maintainers
+     Information document, www.gnu.org/prep/maintain. -->
+
+<p>Copyright &copy; 2009-2013, 2016, 2017 Richard Stallman</p>
+
+<p>This page is licensed under a <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/4.0/";>Creative
+Commons Attribution-NoDerivatives 4.0 International License</a>.</p>
+
+<!--#include virtual="/server/bottom-notes.html" -->
+
+<p class="unprintable">Updated:
+<!-- timestamp start -->
+$Date: 2017/11/25 12:30:21 $
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]