Difference between revisions of "网络浏览器"

From 3dbrew
Jump to navigation Jump to search
(fin)
(fix)
Line 1: Line 1:
 
3DS网络浏览器是在2011年6月更新的功能(JPN/EUR/USA)
 
3DS网络浏览器是在2011年6月更新的功能(JPN/EUR/USA)
  
从网络浏览器的说明/帮助字段可知:
+
从3DS网络浏览器的说明/帮助字段可知:
 
完全遵循 LGPL,OSS源代码可以从任天堂网站获得.
 
完全遵循 LGPL,OSS源代码可以从任天堂网站获得.
 
下载地址:[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip]
 
下载地址:[http://mediacontent.nintendo-europe.com/NOE/images/service/OpenSources.zip]
Line 12: Line 12:
 
* '''Mozilla/5.0 (Nintendo 3DS; U; ; fr) Version/1.7412.EU''' ''for a EUR/fr Nintendo 3DS''
 
* '''Mozilla/5.0 (Nintendo 3DS; U; ; fr) Version/1.7412.EU''' ''for a EUR/fr Nintendo 3DS''
 
* '''Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7455.US''' ''for a USA/en Nintendo 3DS''
 
* '''Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7455.US''' ''for a USA/en Nintendo 3DS''
* 版本标号仅为示例...
+
* 版本标号仅为示意...
  
  
Line 50: Line 50:
 
*[http://acid3.acidtests.org/ Acid3] 测试得分90/100。
 
*[http://acid3.acidtests.org/ Acid3] 测试得分90/100。
 
*网络图像可以存储到 [[SD Filesystem|SD Card]],然后用 [[Nintendo 3DS Camera]] 查看。
 
*网络图像可以存储到 [[SD Filesystem|SD Card]],然后用 [[Nintendo 3DS Camera]] 查看。
*存储到 [[SD Filesystem|SD Card]] 或者3DS本机内存的图像可以上传到博客或者其他使用以下HTML代码传图的网站。
+
*存储在 [[SD Filesystem|SD Card]] 或者3DS本机内存的图像可以上传到博客,或者其他使用以下HTML代码传图的网站。
 
  <input type="file" />
 
  <input type="file" />
* HTML5Test.com说它支持拖拽缩放,但是实际上没做到。webkit已经有这样的代码,但是没有浏览器的接口。
+
* HTML5Test.com说它支持拖拽缩放,但是实际上不支持。webkit有这样的代码,但是没有提供浏览器接口。
  
 
==Tips==
 
==Tips==
Line 66: Line 66:
 
  </script>
 
  </script>
  
* 你也可以检测 <em>navigator.platform=="Nintendo 3DS"</em>  
+
* 你也可以检查 <em>navigator.platform=="Nintendo 3DS"</em>  
  
 
=== 滚动 ===
 
=== 滚动 ===
  
滚动修改document.body.scrollTop和document.body.scrollLeft可以改变。然而,也有不足有关使用这些属性:
+
可以通过设置 <em>document.body.scrollTop</em> 和 <em>document.body.scrollLeft</em> 属性值改变页面滚动的位置。然而使用这些属性也有不足之处:
 
 
这两个属性访问时,返回0
 
其他财产的滚动条的位置设置一个属性重置
 
为了都设置在同一时间的情况下,复位为0,中,使用window.scrollTo。
 
 
 
 
 
可以通过 <em>document.body.scrollTop</em> 和 <em>document.body.scrollLeft</em> 改变滚动的位置。然而,使用这些属性也有不足之处:
 
  
 
* 访问这两个属性时均返回0
 
* 访问这两个属性时均返回0
Line 86: Line 79:
 
=== 事件 ===
 
=== 事件 ===
 
==== 按键事件 ====
 
==== 按键事件 ====
以下按钮会触发<em>onkeydown</em>事件,<em>onkeypress</em>事件 和 <em>onkeyup</em>事件:
+
以下按钮可以触发<em>onkeydown</em>事件,<em>onkeypress</em>事件 和 <em>onkeyup</em>事件:
  
 
{|class="wikitable" width="20%"
 
{|class="wikitable" width="20%"
Line 102: Line 95:
 
|}
 
|}
  
这些事件不能取消他们的默认动作。其他按钮不能触发按键事件。
+
这些事件不能取消他们的默认动作。列表外的按钮不会触发按键事件。
  
 
==== 触摸/鼠标事件 ====
 
==== 触摸/鼠标事件 ====
<em>onmousedown</em>, <em>onmouseup</em> 和 <em>onclick</em> 都是浏览器触发的事件。但是<em>onmousedown</em>事件只有你抬起手写笔,或者长按两秒以上才会发生。屏幕上的文本选择模式被激活时,这和<em>onmouseup</em>事件的效果相同。这些事件也不能取消默认动作。
+
<em>onmousedown</em>, <em>onmouseup</em> 和 <em>onclick</em> 都是由浏览器触发的事件。但是<em>onmousedown</em>事件只在抬起手写笔时,或者长按两秒以上才会发生。当文本选择模式被激活时,这和<em>onmouseup</em>事件的效果相同。这些事件同样不能取消默认动作。
  
<em>onmousemove</em> 和触摸、手势事件不被支持。
+
不支持<em>onmousemove</em>事件、触摸事件和手势事件。
  
 
== 屏幕分辨率 ==
 
== 屏幕分辨率 ==
  
屏幕分辨率为400×240,浏览器中的可视面积<b>400×220</b>,触摸屏分辨率320×240,浏览器中触摸屏可视分辨率<b>320×212</b>。
+
3D屏幕分辨率为400×240,在浏览器中的可视面积<b>400×220</b>;触摸屏分辨率320×240,在浏览器中触摸屏可视分辨率<b>320×212</b>。
  
你可以在两个屏幕中查看一个页面。操作时,下屏是可以操作的,而上屏随之滚动。这样在CSS计算样式时,在220px而不是432px的范围内,元素从下往上定位。
+
你可以在两个屏幕中查看一个页面。下屏是可以操作的,而上屏随之滚动。这样在CSS计算样式时,元素从下往上定位,并且范围有220px而不是432px,这样的特性非常重要。
  
 
== 使用双屏 ==
 
== 使用双屏 ==
Line 148: Line 141:
 
* [http://3ds.andysmith.co.uk/jFox.html jFox] (短网址 : http://bit.ly/iB7FqW)
 
* [http://3ds.andysmith.co.uk/jFox.html jFox] (短网址 : http://bit.ly/iB7FqW)
 
* [http://ditto3d.com/3ds Ditto3D]
 
* [http://ditto3d.com/3ds Ditto3D]
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - 这是浏览器预置的第一个书签
+
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - 这是浏览器预置书签中的第一个

Revision as of 01:26, 29 March 2013

3DS网络浏览器是在2011年6月更新的功能(JPN/EUR/USA)

从3DS网络浏览器的说明/帮助字段可知: 完全遵循 LGPL,OSS源代码可以从任天堂网站获得. 下载地址:[1]

3DS网络浏览器 Netfront Browser NX v1.0 基于 WebKit 引擎。

3DS网络浏览器可以存储 64 个书签。

User-agent 示例:

  • Mozilla/5.0 (Nintendo 3DS; U; ; fr) Version/1.7412.EU for a EUR/fr Nintendo 3DS
  • Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7455.US for a USA/en Nintendo 3DS
  • 版本标号仅为示意...


Web标准

  • HTML 4.01
  • HTML 5 ( HTML5Test.com得分120/400)
  • XHTML 1.1
  • CSS 1
  • CSS 2.1
  • CSS 3 (一些功能不支持)
  • DOM Levels 1-3
  • ECMAScript (支持ECMA-262 第5版的一部分)
  • XMLHttpRequest Level 2
  • Canvas Element (一些功能不支持)

网络协议

  • HTTP 1.0
  • HTTP 1.1
  • SSLv3
  • TLS 1.0

图像格式

  • MPO
  • GIF
  • JPEG
  • PNG
  • BMP
  • ICO (不完全支持)

插件

不支持插件 (比如 Flash)

其他细节

  • Acid3 测试得分90/100。
  • 网络图像可以存储到 SD Card,然后用 Nintendo 3DS Camera 查看。
  • 存储在 SD Card 或者3DS本机内存的图像可以上传到博客,或者其他使用以下HTML代码传图的网站。
<input type="file" />
  • HTML5Test.com说它支持拖拽缩放,但是实际上不支持。webkit有这样的代码,但是没有提供浏览器接口。

Tips

User Agent检测

检测User Agent是不是任天堂3DS浏览器 :

<script type="text/javascript">
    if (navigator.userAgent.indexOf('Nintendo 3DS') == -1) { //如果 UserAgent 不是 "Nintendo 3DS"
        location.replace('http://www.3dbrew.org'); //重定向到其他页面
    }
</script>
  • 你也可以检查 navigator.platform=="Nintendo 3DS"

滚动

可以通过设置 document.body.scrollTopdocument.body.scrollLeft 属性值改变页面滚动的位置。然而使用这些属性也有不足之处:

  • 访问这两个属性时均返回0
  • 设置一个滚动条时改变了另一个滚动条的位置

为了同时设置两个滚动条的位置,(而不是把其中一个置零),可以使用window.scrollTo.

事件

按键事件

以下按钮可以触发onkeydown事件,onkeypress事件 和 onkeyup事件:

按键
13 A
37
38 Up
39
40

这些事件不能取消他们的默认动作。列表外的按钮不会触发按键事件。

触摸/鼠标事件

onmousedown, onmouseuponclick 都是由浏览器触发的事件。但是onmousedown事件只在抬起手写笔时,或者长按两秒以上才会发生。当文本选择模式被激活时,这和onmouseup事件的效果相同。这些事件同样不能取消默认动作。

不支持onmousemove事件、触摸事件和手势事件。

屏幕分辨率

3D屏幕分辨率为400×240,在浏览器中的可视面积400×220;触摸屏分辨率320×240,在浏览器中触摸屏可视分辨率320×212

你可以在两个屏幕中查看一个页面。下屏是可以操作的,而上屏随之滚动。这样在CSS计算样式时,元素从下往上定位,并且范围有220px而不是432px,这样的特性非常重要。

使用双屏

通常最简单的正确布局是创建包含双屏的HTML元素,比如这样:

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=400">
    <style>
      body { margin: 0px; }
      #topscreen { width: 400px; height: 220px; overflow: hidden; }
      #bottomscreen { width: 320px; height: 212px; overflow: hidden; margin: 0 auto; }
    </style>
  </head>
  <body>
    <div id="topscreen">上屏</div>
    <div id="bottomscreen">下屏</div>
  </body>
</html>

使用这种方法很容易通过JavaScript操作页面。为了让窗口获得正确的位置,可以使用下面的JavaScript代码:

window.setInterval(function () {
    window.scrollTo(40, 220);  
}, 50);

这样如果用户不小心滚动了页面,页面能够自动复位。

示例网站