MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2025-06-26, 04:35

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 8 篇文章 ] 
發表人 內容
文章發表於 : 2007-03-22, 08:53 
離線

註冊時間: 2006-06-04, 10:57
文章: 7
在firefox的扩展中有一个downthemall! 可以实现多线程下载, 下载过程可控,极大的增强了firefox自带的下载功能。 但downthemall!是国外的朋友开放的, 对这个东亚字符的乱码问题没有考虑在里面,所以在下载中文的文件中很多时候会出现乱码的情况, 让人感觉很不爽。

本人也是一个菜鸟, 但苦于受这个害, 没办法奋起学之, 东拼西凑, 经过一天的努力, 终于将这个乱码的问题解决, 解决的不算完美, 但可以接受。

修改之后的downthemall! 不会在下载面板中出现的dtaoneclick下的路径中的中文乱码。同时下载的文件名也不会出现乱码, 可以识别所有的编码并进行转换, 彻底解决乱码问题, 不过有一点小问题, 就是在下载的时候窗口中显示的还是乱码, 但下载下来的文件是不会有乱码的, 而且重新打开dta的管理器, 文件名也不会出现乱码, 我还没有找到这个窗口中的刷新是在哪里修改的. 继续努力中…..
××××××××××××××××××××××××××××××××××××××××××××××××××××

本次修改中所修改的的文件有三个, 一个是dta.jar/content/dmoverlay.js, 里面共涉及三处内容的修改

1、增加 this.description = dialog.mLauncher.source.originCharset; 该语句主要用来获得所下载页的编码,从而为后面的获得正确的解码提供基础。 这个方法来源是mozilla的developer, 地址是这里:http://developer.mozilla.org/en/docs/nsIURI

同时利用了downthemall!的description字段作为编码的存储字段, 用来传递编码, 以便于正确解码。

2、 增加
var converter = Components.classes[”@mozilla.org/intl/scriptableunicodeconverter”]
.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = ‘UTF-8′;
dir = converter.ConvertToUnicode(dir);

这个语句用来修正在下载面板中出现的dta下载路径中的中文字的乱码

3、修改了 DTA_AddingFunctions.saveSingleLink(turbo, this.url, this.referrer, “”);将其修改成DTA_AddingFunctions.saveSingleLink(turbo, this.url, this.referrer, this.description); 将网页编码传递过去。

另外修改的一个是dta.jar/content/dta/down.js, 里面涉及一处内容的修改, 增加了下面的这个语句

//start modified by hongfengye 2007-03-14
var converter = Components.classes[”@mozilla.org/intl/scriptableunicodeconverter”]
.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = this.description;
this.fileName = converter.ConvertToUnicode(this.fileName);
this.destinationName = converter.ConvertToUnicode(this.destinationName);
//end modified

用来修正下载的文件名, 消除中间的乱码。 我把这个语句加在了moveCompleted : function(fileManager)过程中, 所以乱码修正的时间是在下载完毕的时候修正, 我还没有找到更好的地方进行修正乱码。 尽请原谅

另外一个被修改的文件是menu.js, 这个文件就是右键菜单中加入downthemall!的核心所在文件,这个里面有一个函数是从右键菜单开始下载所要运行的, 因为那时候没有考虑到右键, 所以没有修改, 从而使得出现上述bug, 修改后,从右键菜单下载, 也可以获取到原始refer的编码, 从而进行相应的编码转换, 原来是这个地方没有获取refer的编码,从而在编码转换的地方出现了错误! 这次相应的把编码转换的地方增加了程序符合性判断, 可以判断是否可以转换, 如果可以才执行编码转换,否则就按照原版方式, 不转换编码直接运行。

本来我想在这个扩展提取文件名的地方修正乱码的, 这个是最彻底的, 但我一直找不到一个参数的传递, 而已在最初的时候传递参数,但从论坛上下载文件的时候, 总是会出现文件名自动修改的方式, 这个方式我没有掌握是一个什么过程, 从而没有找到参数的传递。从而导致修改不成功, 最后还是放弃了。

修改这个扩展用到了sunwan修改greasemonkey中用到的代码, 我直接拿来用了, 在此感谢sunwan。

本人的技术实在太菜, 所以修改的不好, 请各位原谅。

各位可以采取以下方式安装新的版本:

下载本附件后, 将后缀名从xpi改成zip, 或者直接在xpi后面添加.zip, 然后用winrar之类的解压工具打开, 把里面的dta.jar提取出来, 直接覆盖电脑上的dta.jar, 如果需要保留原版的, 可以将原来的版本的dta.jar改名.

dta.jar是存在firefox的profile\extensions\{DDC359D1-844A-42a7-9AA1- 88A850A938A8}\chrome, 这个文件夹可能是隐藏的, 所以在搜索的时候需要打开搜索隐藏对象和系统对象, 一般在c:\documents and settings\你的用户名\application data\mozilla\firefox的下面. 如果是portable的用户, 那就在portable的data下面了.

注意: 在替换的时候要关闭firefox, 否则替换不成功

新修改的的附件在这里下载
http://blog.2i2j.com/downthemall.xpi


附加檔案:
downthemall_-0.9.9.7-fx+fl+tb(modified_by_2007-03-21).xpi [426.02 KiB]
被下載 963 次


最後由 sdec040721 於 2007-05-10, 18:37 編輯,總共編輯了 2 次。
回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1) Gecko/20061010 Firefox/2.0
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-22, 11:39 
離線
頭像

註冊時間: 2004-11-19, 00:07
文章: 482
來自: 閃光彈的家
你可以把修改回報給作者,或是看看論壇上有沒有強者想要一起修改看看 :)

_________________
我的部落格


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-22, 12:24 
離線

註冊時間: 2006-06-04, 10:57
文章: 7
谢谢!

我试着跟作者联系看看, 不过我的外语非常差劲. 不知道他能否看懂!

我贴到这里, 也希望有高手能够参与, 从而改的更加完美. 本人技术实在太差.


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1) Gecko/20061010 Firefox/2.0
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-22, 21:40 
離線
頭像

註冊時間: 2005-02-24, 19:15
文章: 1037
來自: Taiwan
sdec040721 真是厲害, 很難得看到貼上修改版還能附上詳盡修改說明.

_________________
Amauds's Firefox
曾經妳以為最可靠的依賴;其實從未曾真實的存在過。
圖檔圖檔


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-23, 18:41 
離線

註冊時間: 2006-06-04, 10:57
文章: 7
经过仔细代码阅读, 今天重新修改了downthemall!, 终于彻底解决了乱码问题, 请以前下载的感到不满意的可以重新下载附件, 如果以前已经安装过的, 可以采取直接替换方式, 这样就免去安装的麻烦. 关于修改的方法, 我将在稍后奉上, 请各位见谅.

具体替换方法如下:

下载附件中的dta.jar, 直接覆盖电脑上的dta.jar, 如果需要保留原版的, 可以将原来的版本的dta.jar改名.

dta.jar是存在firefox的profile\extensions\{DDC359D1-844A-42a7-9AA1- 88A850A938A8}\chrome, 这个文件夹可能是隐藏的, 所以在搜索的时候需要打开搜索隐藏对象和系统对象, 一般在c:\documents and settings\你的用户名\application data\mozilla\firefox的下面. 如果是portable的用户, 那就在portable的data下面了.

注意: 在替换的时候需要关闭firefox, 否则无法替换成功

具体替换的文章也可以参见我的博客:
http://blog.2i2j.com/?p=191


附加檔案:
檔案註釋: downthemall!0.9.9.7(2007-03-24修改版), 用于直接替换, 免去重新安装的麻烦
dta.jar [476.08 KiB]
被下載 693 次
檔案註釋: downthemall!0.9.9.7(2007-03-24修改), 解决东亚字符乱码问题
downthemall_-0.9.9.7-fx+fl+tb(modified 2007-03-24).xpi [426.66 KiB]
被下載 747 次
回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-24, 15:03 
離線

註冊時間: 2006-06-04, 10:57
文章: 7
非常抱歉, 昨天的附件里面有一个编程中 != 写成了 ==, 导致了所有的下载判断刚好相反, 从而无法实现乱码转换, 今天我重新更新了附件, 请各位重新上楼的附件(日期标注为3-24)

对于我造成的错误, 表示深切的歉意!


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-24, 20:55 
離線

註冊時間: 2006-06-04, 10:57
文章: 7
我把整个的修改过程和中间出现的bug写在了我的博客上, 有兴趣的可以上博客阅读, http://blog.2i2j.com, 下面内容转自博客

前面经过两次的修改, 差不多解决了downthemall!在下载的文件名中出现乱码的问题, 但还是有一个问题没有解决,就是在下载过程中“dta管理器”中显示文件名还是乱码的, 虽然说这个问题不大, 等下载完毕后, 关闭dta管理器再重新打开就显示为正确了,可人的追求总是无止境的, 所以虽然问题不大, 可看起来就是不爽。 所以又重新阅读了整体的代码,最后弄明白了这个“dta管理器”中的乱码存在的原因, 然后重新修改了代码, 彻底解决了出现的乱码问题, 包括在log文件中也不会再出现乱码了。

此次修改如果没有出现bug的话应该就是最后一次修改了, 因为从测试来看已经解决了这个根本性的乱码问题。 这个事情就暂告一个段落, 我把中间修改的过程和修改的地方详细的描写一遍, 算是给自己记个笔记, 同时也可以给需要的人一个参考。

首先说说修改乱码的机理, 就是以什么方式修正乱码。 众所周知,乱码的产生是因为本身的编码和显示的编码不是同一个编码从而看起来就成了乱码,由于mozilla中读取字符的方式都是采用iso8859_1编码的, 但实际每个网页的编码都有变化, 这个时候如果都是单字节字符没有任何问题,因为在任何一个编码情况下, 单字节都是同一个编码, 所以都不会读错, 但读到多字节字符的时候, 因为iso8859_1编码是默认单字节的,所以导致无法识别, 从而产生乱码, 我们这里要解决的就是把用iso8859_1编码的读取,仍旧还原成原来网页的编码, 从而可以识别多字节字符,不至于产生乱码, 对这个转换主要就用到了一个函数ConvertToUnicode()。 所有的乱码修改的地方都贯穿了这个函数。

下面就来说说我修改乱码的思路, 我修改乱码是这样的一个思路, 既然乱码是因为多字节字符引起的,而多字节字符在相应的网页编码下都能良好的工作,那我们就用ConvertToUnicode()这个函数把由于iso8859_1编码读取的字符还原到原始网页编码的字符那就ok了,可从哪里得到网页的编码呢? 这里我就用了下载页面的编码来作为参考, 也就是用了下载中经常说到了refer页面(即参考页面)的编码。所以在这个修改的乱码中有一点注意, 如果本次下载没有refer页面, 那就不会用ConvertToUnicode()进行编码转换,从而如果出现多字节字符, 还是会出现乱码。 这个没有办法, 因为我实在不能知道这个编码是什么的。

介绍完了思路, 下面就说说我修改的地方, 本次修改总共涉及到了一下几个文件, dta.jar/content/dmoverlay.js, dta.jar/content/menu.js, dta.jar/content/dta/overlayfunction.js, dta.jar/content/dta/internalfunction.js 和 dta.jar/content/dta/down.js ,下面我一个一个说明修改的部分。

1、dta.jar/content/dmoverlay.js

这个文件是用来获取下载的文件, 所有的参数都是从这个文件生成然后传入其他文件然后进行下载过程的, 我们在这里要做的就是换取refer页面的编码, 我用了这个语句。

if(this.referrer != “”)
this.description = dialog.mLauncher.source.originCharset;
else
this.description =”"

这个语句就是用来判断refer是否为空, 如果有refer, 那把description设置成为该网页的编码,注意我在修改代码的时候没有增加相应的参数, 而是用了description作为编码传递的参数,这个description本来是作为一个注释用的。 后面都是这个方式实现的。 因为我觉得注释不是很重要, 而且也几乎没有用到,而增加参数这个工程量太大,所以就采用了这个方法。

在这个文件中还修改了一处地方, 这个地方的修改跟下载文件名的乱码没有关系, 这个部分是用来在下载对话框中显示dta一键下载,并在下面显示下载的路径, 这个下载路径中如果有多字节字符就会出现乱码, 这个地方修改后就可以编码这个问题, 不会再出现乱码, 具体的代码是:

var converter = Components.classes[”@mozilla.org/intl/scriptableunicodeconverter”]
.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = ‘UTF-8′;
dir = converter.ConvertToUnicode(dir);

dmoverlay.js文件大的修改就这两点, 最后修改的一点是参数传递, 原版的downthemall在传递是将description直接用“”进行传递的, 我这里就用了description, 代码如下(注释掉的就是原始代码):

//DTA_AddingFunctions.saveSingleLink(turbo, this.url, this.referrer, “”);
DTA_AddingFunctions.saveSingleLink(turbo, this.url, this.referrer, this.description);

×××××××××××××××××××××××××××××××××××××××××××××

2、dta.jar/content/menu.js

这个文件是在右键下载菜单下载文件时的入口点, 上面的dmoverylay.js是弹出下载框的入口点,所以第一次(2007-03-16修改版)的时候我没有考虑到这里, 因为我不习惯用右键下载, 从而在某些朋友使用的时候出现了问题。这个是右键菜单和批量下载的入口点, 所以这里修改的地方跟dmoverlay.js差不多, 就是获取网页的编码, 然后传递编码。代码如下(具体修改的位置请直接看文件, 所有的修改处都以//start modified by hongfengye开始到//end modified by hongfengye结束):

document.commandDispatcher.focusedWindow.document.URL ? document.commandDispatcher.focusedWindow.document.characterSet : “”

3、dta.jar/content/dta/overlayfunction.js

这个文件里面要改的地方有一个是涉及到log文件中的乱码的, log文件出现乱码的原因同上, 这个代码是从原版中抄袭的, downthemall!还涉及到 一个文件, dta_history.xml, 这个文件是用来放下载的文件的信息的, 这个文件没有乱码,但log文件却是有乱码的, 原因就在于这个dta_history.xml做了乱码处理, 而log文件没有,我就把dta_history.xml中的编码转换部分抄过来了, 代码如下:

var converter = Components.classes[”@mozilla.org/intl/saveascharset;1″]
.createInstance(Components.interfaces.nsISaveAsCharset);
converter.Init(’utf-8′, 1, 0);
text = converter.Convert(text);

另外还修改了两处地方, 但不知道这两个地方的代码是干吗用的, 但还是修改了, 怕到时候出现bug。 这两个地方就是var dragObserverTdTa 和 var dragObserverdTa , 这两处中涉及到了一个function - DTA_AddingFunctions.saveSingleLink , 所以在里面也传递了一个description参数。但我不知道这两个var是干吗的, 我也没有测试出来, 先暂时放放。(突然想到, 这个可能是拖放到“dta管理器”中的时候运行的函数。

4、dta.jar/content/dta/internalfunction.js

这个文件中有一个最重要的函数, 就是getUsablefileName(), 这个函数就是用来获取文件名的,所有的文件名乱码在这里修改是最彻底的, 只要这里获取的时候不是乱码就不会是乱码了。 所以我修改了这个函数,但因为这个函数中间没有办法得到网页编码, 所以编码必须从外部传递过来, 所以我就把函数加两个一个参数传递, 把编码从外部传递到函数内部。修改这个函数可以免去修改其他多处地方, 这是一个优点。 具体修改后的代码如下(原代码请参考原始版本):

getUsableFileName : function(tochar) {
var t = this.trim().removeArguments().removeFinalBackSlash().split(”/”);
//return t[t.length-1].removeBadChars().replace(/[\\/]/g, “”).trim();
var tt = t[t.length-1].removeBadChars().replace(/[\\/]/g, “”).trim();
//start modified by hongfengye at 2007-03-21
if(tochar !=”"){
var allcharset = new Array(
‘GB2312′,
‘X-GBK’,
‘GB18030′,
‘HZ-GB-2312′,
‘UTF-8′,
‘ISO-2022-CN’,
‘ISO-2022-JP’,
‘ISO-2022-KR’,
‘BIG5′,
‘BIG5-HKSCS’,
‘EUC-JP’,
‘EUC-KR’,
‘ARMSCII-8′,
‘GEOSTD8′,
‘ISO-8859-1′,
‘ISO-8859-10′,
‘ISO-8859-11′,
‘ISO-8859-12′,
‘ISO-8859-13′,
‘ISO-8859-14′,
‘ISO-8859-15′,
‘ISO-8859-16′,
‘ISO-8859-2′,
‘ISO-8859-3′,
‘ISO-8859-4′,
‘ISO-8859-5′,
‘ISO-8859-6′,
‘ISO-8859-6-E’,
‘ISO-8859-6-I’,
‘ISO-8859-7′,
‘ISO-8859-8′,
‘ISO-8859-8-E’,
‘ISO-8859-8-I’,
‘ISO-8859-9′,
‘ISO-IR-111′,
‘IBM850′,
‘IBM852′,
‘IBM855′,
‘IBM857′,
‘IBM862′,
‘IBM864′,
‘IBM864I’,
‘IBM866′,
‘KOI8-R’,
‘KOI8-U’,
‘SHIFT_JIS’,
‘T.61-8BIT’,
‘TIS-620′,
‘US-ASCII’,
‘UTF-16′,
‘UTF-16BE’,
‘UTF-16LE’,
‘UTF-32BE’,
‘UTF-32LE’,
‘UTF-7′,
‘VIQR’,
‘VISCII’,
‘WINDOWS-1250′,
‘WINDOWS-1251′,
‘WINDOWS-1252′,
‘WINDOWS-1253′,
‘WINDOWS-1254′,
‘WINDOWS-1255′,
‘WINDOWS-1256′,
‘WINDOWS-1257′,
‘WINDOWS-1258′,
‘WINDOWS-874′,
‘WINDOWS-936′,
‘X-EUC-TW’,
‘X-IMAP4-MODIFIED-UTF7′,
‘X-JOHAB’,
‘X-MAC-ARABIC’,
‘X-MAC-CE’,
‘X-MAC-CROATIAN’,
‘X-MAC-CYRILLIC’,
‘X-MAC-GREEK’,
‘X-MAC-HEBREW’,
‘X-MAC-ICELANDIC’,
‘X-MAC-ROMAN’,
‘X-MAC-ROMANIAN’,
‘X-MAC-TURKISH’,
‘X-MAC-UKRAINIAN’,
‘X-OBSOLETED-EUC-JP’,
‘X-OBSOLETED-ISO-2022-JP’,
‘X-OBSOLETED-SHIFT_JIS’,
‘X-U-ESCAPED’,
‘X-USER-DEFINED’,
‘X-VIET-TCVN5712′,
‘X-VIET-VNI’,
‘X-VIET-VPS’,
‘X-WINDOWS-949′
);
for(var i=0; i<allcharset.length; i++){
if(tochar.toUpperCase() == allcharset[i]){
var converter = Components.classes[”@mozilla.org/intl/scriptableunicodeconverter”]
.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = tochar;
tt = converter.ConvertToUnicode(tt);
break;
}
}
}
return tt;
//end modified
},

然后将涉及到getUsablefileName()的地方, 都将这个函数改成了参数传递, 主要有down.js 和 internalfunction.js, 这里就不一一罗列了!

5、dta.jar/content/dta/down.js

这个文件里面主要修改的部分就是我上面说的将getUsableFileName()改成了传递参数(参数就是编码),但有一处是改动较大的, 就是原版本来在visitHeader函数中使用了getUsableFileName(),在这个地方无法将编码参数传递过来, 一直是我所困扰的, 后来看到代码的赋值并不在这里,所以将这里的getUsableFileName()函数取消, 将该函数移动到赋值之前, 即这里:

d.fileName = d.destinationName = visitor.fileName + (visitor.fileName.lastIndexOf(’.') == -1 && d.url.getExtension() ? ‘.’ + d.url.getExtension() : ”);

将getUsableFileName()函数插入这个语句之前, 这样就解决了在header中改变文件名而不能修正乱码的麻烦。 至此也就彻底解决乱码问题

关于downthemall!乱码修正问题,经过几天的努力终于告一个段落。这是我对firefox扩展的第一个修改, 也是第一次尝试, 通过这次的作业,我也学到了很多以前从来都不知道的东西, 学到的最多的就是关于xpcom这个东西, 虽然我到现在也没有弄清楚是什么东西,但还是用这个东西做了点事情。

希望下次还有机会可以再锻炼锻炼, 也希望能多跟高手学习学习, 这次多亏了有greasemonkey的修改作者sunwan, 有了它写的这个convertToUnicode才有了这个修改版的诞生。

最后, 修改版的下载地址在这里http://blog.2i2j.com/downthemall.xpi


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-05-10, 18:35 
離線

註冊時間: 2006-06-04, 10:57
文章: 7
本文转自博客 http://blog.2i2j.com
这几天firefox更新了一些扩展, 其中包括我downthemall!, 所以趁着今天稍微有些空闲, 把这个插件的0.9.9.8版本修改了一下, 以解决非英文字符乱码的问题, 我测试的都是汉字(中文), 包括GB2312/GBK/GB18030/UTF-8, 这个情况下都不会出错了, 其他的BIG5之类的都未经测试, 如果有人发现bug请提供反馈, 谢谢!

我把修改版放到这里提供下载:

http://blog.2i2j.com/downthemall.xpi

对于已经安装downthemall!0.9.9.8版本的朋友, 也可以采用直接替换dta.jar的方式修改, 免去再次安装的麻烦。具体替换方法见这里 《 firefox中扩展的替换方式 》

http://blog.2i2j.com/dta.jar

该修改版的具体修改方法和经过可以参见下列文章:

《 downthemall!0.9.9.7(modified 2007-03-24), 修改一处bug 》

《 downthemall!0.9.9.7(2007-03-24修改版), 彻底解决乱码 》

《 downthemall!0.9.9.7(2007-03-21)修改版,解决前面修改中出现的bug 》

《 downthemall!0.9.9.7(2007-03-16)修改版, 解决汉字乱码(firefox扩展) 》


附加檔案:
檔案註釋: downthemall_-0.9.9.8-fx+fl+tb(modified 2007-05-10)
dta.jar [527.18 KiB]
被下載 572 次
檔案註釋: downthemall_-0.9.9.8-fx+fl+tb(modified 2007-05-10)
downthemall_-0.9.9.8-fx+fl+tb(modified 2007-05-10).xpi [476.38 KiB]
被下載 567 次
回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 8 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 10 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群