`
hanwei59
  • 浏览: 35653 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

改了“JavaEye的Firefox插件”的一个bug

阅读更多
改后:

改之前:



安装Javaeye的Firefox插件0.3.3版时,发现了一个bug:标签过多时,对话框超出了屏幕的范围。反正在这没有情人的情人节也无聊,就研究一下看能改好不。

把插件的后缀由.xpi改成.zip解压,chrome目录下的javaeye_plugin.jar再解压,
进入content,找了一下发现:“添加收藏”那个对话框的配置文件就是bookmark-editor.xul,放置“标签”的地方就是这里:
                <vbox hidden="true">
                    <hbox flex="1">
                        <label value="已有的标签" />
                        <label value="点击挑选" class="no-left-margin" disabled="true" />
                    </hbox>
                    <hbox flex="1" id="saved_tags">
                        
                    </hbox>
                </vbox>

关于Box:https://developer.mozilla.org/en/XUL_Tutorial/The_Box_Model
以及bookmark-manager.js里的
    _createTagLabel: function(tag) {
        var lbl = document.createElement("label");
        lbl.setAttribute("value", tag[0] + " (" + tag[1] + ")" );
        lbl.setAttribute("onclick", "jeBookmarkManager.tagClick('" + tag[0] +"');");
        lbl.setAttribute("class", "label-link");
        lbl.setAttribute("tabindex", "-1" );
        $('saved_tags').appendChild(lbl);
    },
调用时:
            for (i = 0; i < result.length; i++) {
                this._createTagLabel(result[i]);
            }


hbox里的元素是水平放置的,vbox里的元素是垂直放置的。难怪当我的标签太多时屏幕就显示不下了。
改成vbox里嵌套hbox就应该OK了。于是bookmark-editor.xul里修改如下:
                <vbox hidden="true">
                    <hbox flex="1">
                        <label value="已有的标签" />
                        <label value="点击挑选" class="no-left-margin" disabled="true" />
                    </hbox>
		    <vbox id="saved_tags">

		    </vbox>
                </vbox>

再改bookmark-manager.js:
    _createTagLabel: function(hbox,tag) {
        var lbl = document.createElement("label");
        lbl.setAttribute("value", tag[0] + " (" + tag[1] + ")" );
        lbl.setAttribute("onclick", "jeBookmarkManager.tagClick('" + tag[0] +"');");
        lbl.setAttribute("class", "label-link");
        lbl.setAttribute("tabindex", "-1" );
        hbox.appendChild(lbl);
    },
	_createTags: function(result) {
		var length = result.length;
		var SIZE = 10;
		var rows = 0;
		var i = 0;
		while(i<length){
			var hbox = document.createElement("hbox");
			for(;i<(rows+1)*SIZE;i++){
				if(i>=length) break;
				this._createTagLabel(hbox,result[i]);
			}
			$('saved_tags').appendChild(hbox);
			rows += 1;
			i = rows*SIZE;
		}
    },

调用的地方:
this._createTags(result);

OK了,效果如文章开头所示,当然其中经历的n次失败就不提了。
  • 大小: 74.3 KB
  • 大小: 69.4 KB
10
0
分享到:
评论
8 楼 远去的渡口 2010-01-27  
真佩服呀!偶尔也发现过一些比较知名网站的bug,但是还没有想过把它改好。。。。
7 楼 QuakeWang 2009-02-20  
新的版本已经解决这个问题,再次感谢
6 楼 hanwei59 2009-02-15  
robbin 写道

QuakeWang 写道十分感谢,下次升级插件的时候会将你的这个更新放进去。建议将楼主作为contributor之一写入插件说明文档。

这。。。不用了吧
5 楼 robbin 2009-02-15  
QuakeWang 写道

十分感谢,下次升级插件的时候会将你的这个更新放进去。


建议将楼主作为contributor之一写入插件说明文档。
4 楼 hanwei59 2009-02-15  
ibio 写道

很强悍,顶一个!~LZ辛苦了。呵呵!~
Thanks
3 楼 ibio 2009-02-14  
很强悍,顶一个!~LZ辛苦了。呵呵!~
2 楼 hanwei59 2009-02-14  
QuakeWang 写道

十分感谢,下次升级插件的时候会将你的这个更新放进去。

呵呵 很荣幸
1 楼 QuakeWang 2009-02-14  
十分感谢,下次升级插件的时候会将你的这个更新放进去。

相关推荐

    javaeye代码高亮插件

    1. **SyntaxHighlighter.css**:这是一个样式表文件,负责定义代码块的样式,包括颜色、字体、背景、边框等。代码高亮的视觉效果主要依赖于这个CSS文件,它将不同的编程关键字、注释、字符串等用不同颜色进行区分,...

    麦库客户端模仿javaeye插入代码高亮插件

    这个标题表明我们要讨论的是一个针对麦库(Maiku)客户端的修改或增强,它借鉴了JavaEye网站的代码高亮显示功能。JavaEye是一个知名的中国IT社区,其代码高亮功能在编程交流中非常有用,能够使得代码更加清晰易读。...

    JavaEye博文JavaEye博文JavaEye博文

    9. 理解专业程序员:本节讨论了专业程序员的概念和应用,包括如何成为一个优秀的程序员。 10. 沧海拾遗:本节讨论了Linux文件目录结构简介和Sftp的使用方法。 本资源摘要信息涵盖了软件开发、编程、项目管理等多...

    javaeye被黑

    javaeye被黑 大家看看

    JavaEye3.0开发手记

    为了扩展Rails的功能,并满足特定需求,项目中引入了多个插件: **1. rspec** - **作用**:用于取代默认的测试框架,提供更强大的功能和支持行为驱动开发(BDD)。 - **优点**:需求化更强,支持更全面。 **2. 全文...

    javaeye热点阅读

    2. 开源表达式解析器IK-Expression:这是一个用于解析Java表达式的开源项目,可以帮助开发者在程序中方便地处理复杂的逻辑计算。 3. jbpm3与jbpm4实现对比:jbpm是一款流行的工作流管理系统,对比两个版本的实现,...

    JavaEye+技术架构

    JavaEye+技术架构,讲述java框架的应用

    javaeye的信息提示框代码之js

    javaeye的信息提示框代码之css,application.js

    JavaEye新闻月刊_-_2009年3月_-_总第13期

    JavaEye新闻月刊2009年3月第13期内容...JavaEye新闻月刊不仅为读者提供了一个了解软件开发行业动态和趋势的平台,而且也反映了当时技术社区内部成员对于技术发展的看法和预测,对于软件开发从业者具有较高的参考价值。

    JavaEye的API使用帮助.rar

    JavaEye的API使用帮助是一个针对JavaEye开发框架的详细指南,旨在帮助开发者更好地理解和应用这个框架。这个压缩包包含了三个文件:一个PDF文档,一个TXT文本文件,以及一个URL链接。接下来,我们将深入探讨JavaEye ...

    MyEclipse快捷键与插件大全 - 入门技术 - New - JavaEye(1)

    MyEclipse快捷键与插件大全 - 入门技术 - New - JavaEye(1)

    javaeye网站架构解密

    最初,JavaEye仅依靠两台1U服务器支撑其运营,其中一台作为WebServer,另一台作为DBServer。WebServer配备了AMDOpteron 2.4GHz双单核处理器,拥有8GB内存和146GB SCSI硬盘;而DBServer则采用AMDOpteron 2.0GHz双单核...

    javaeye 基于android客户端

    JavaEye是一个基于Android平台的应用程序,它展示了在移动设备上构建功能丰富的软件的可能性。这个小应用旨在为开发者提供灵感和指导,帮助他们更好地理解和实践Android应用开发。让我们深入探讨一下这个应用背后的...

    JavaEye Client SourceCode

    JavaEye Client SourceCode是一个开源项目,专为Android平台设计,提供了JavaEYE的客户端实现。这个项目的源代码为我们提供了一个深入了解Android应用开发以及Java编程在移动设备上的实践的宝贵资源。接下来,我们将...

    httpClient调用javaeye API验证用户

    JavaEye可能是一个提供用户认证服务的平台,而API则提供了验证用户身份的功能。 以下是一个关于如何使用HttpClient调用JavaEye API的基本步骤: 1. **导入必要的库**:首先,你需要在项目中导入HttpClient相关的...

    javaeye论坛小测试答案

    javaeye 论坛小测试 javaeye论坛小测试答案 javaeye论坛测试答案 这下你们就省事了。

    jquery插件--表格树--GridTree(兼容火狐)(过期)

    1.支持火狐; 2.支持定义行的事件; 3.支持多样化表格属性列; 4.添加多种属性,优化后台速度。 后台代码示例工程,请看这里: http://renjie120.javaeye.com/admin/blogs/583388

Global site tag (gtag.js) - Google Analytics