- 浏览: 696437 次
- 性别:
- 来自: 北京
最新评论
-
qgm168:
...
Ruby中HmacMD5加密 -
lucky_god:
感谢楼主,写的很详细!
Redhat安装gem包报错“no such file to load — zlib”以及ruby的openssl扩展等错误的修正 -
liaozhaijk:
$("某一个dom").change() ...
jquery绑定input 文本域(text),检测值的变化 -
avalonzst:
...
Mysql启动失败Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysq -
zdz8207:
非常感谢,我的也是磁盘满了导致的问题,顺便分享下查看磁盘的命令 ...
Mysql启动失败Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysq
文章列表
若是在Firefox扩展中给某个元素创建一个右键菜单,根本没有必要通过注册事件,以及通过定位来添加一个类似于div的容器 去实现,MDN提供了右键菜单的功能
比如有一个box容器,要给它添加一个右键菜单,只需要把box的contextmenu属性 指定为 一个popup元素的id就可以实现
<box contextmenu="a_context_menu">
....
</box>
<popup id="a_context_menu">
<menuitem label="编辑& ...
chrome插件提供了查找tab的api
chrome.tabs.get(integer tabId, function callback)
但是出于安全的考虑,tab的属性中没有document
因此无法在扩展中直接获取某个页签页面中的页面元素
但是tab有这样一个方法
chrome.tabs.sendRequest(integer tabId, any request, function responseCallback)
他可以在扩展中可以对某一个tab进行请求,发送请求信息;
在对应的tab页面中通过
chrome.extension.onRequest.addListener(fu ...
做了一个功能,要根据chrome的当前页签tab的变化来执行一段代码
查看api,找到了下面这个方法
chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab) {
var url = tab.url;
alert(url);
});
但是在程序运行的时候(在地址栏输入地址触发这个事件)发现,每次他都运行两遍里面的代码,于是猜想是不是状态变化了两次
试着alert下 changeInfo.status
果然有两次输出,一个是 loading 一个是 complete
加了一个if判断,问题解决
...
虽然觉得Hello World有点俗,但是还是决定从他开始
新建一个chrome的hello world插件非常容易
1 建一个文件夹
任意命名
在文件夹下放一个icon.png 的小图标
创建一个名为manifest.json文件
文件内容如下:
{
"name": "Hello World Extension",
"version": "1.0",
"description": "about hello world",
"browser ...
使用选择器选择特定的元素倒是容易,什么.css(),find()啊的一大堆,查找所有的子元素,却有点出乎意外的一会半会没找到方法,后来发现就是一个通配符。
查找所有的子孙元素就是find("*")
>>jQuery("<div><div><div><div><div></div></div></div></div></div>").find("*").length
>>4
>> ...
有这么一个地址,我要得到他的host
url = "http://v.t.sina.com.cn/share/share.php?source=viviband&title=%E7%9C%8B%E5%88%B0%E4%B8%80%E5%BC%BA%E5%8A%9B%E7%9A%84%E5%9B%BE%2C%E6%B1%82%E6%AD%A4%E5%AE%8F%E5%A6%82%E4%BD%95%E5%81%9A%20-%20%E8%89%BE%E6%B3%BD%E6%8B%89%E6%96%AF%E5%9B%BD%E5%AE%B6%E5%9C%B0%E7%"
解析
...
主要是用到了box的两种常见形式:vbox(元素垂直摆放),hbox(元素水平摆放)
滚动条
设置
style="overflow:scroll;"
属性,可以给box添加滚动条
其实只要能设置style,就说明这玩意跟css有扯不开的关系,布局什么的就靠他
子元素排列
box有一个align的属性,缺省为stretch,它表示其中的子元素会发生纵向扩展
如果给box添加了一个图片标签,这个图片又比较小的情况下,图片会拉伸扭曲变形
可以把设为 start(如果是水平的box,它就是顶端对齐。如果是竖直的box,它就是左对齐)
还可以设为以下值
center 居中
...
tabbox是多页签的容器
tabs中的tab是用来表示页签的头部
tabpanels下的tabpannel是页签的内容
tabs中元素顺序与tabpannel元素顺序对应
引入网页在tabpanel中使用browser也可以使用iframe
<tabbox id="tab_list" flex="1" >
<tabs>
<tab label="javaeye"/>
<tab label="网易" />
...
为了完成 在一个网页中 用查看“更多” 来 代替分页的功能,可能要截取数据库中的一段数据记录
假设现在有一个名为Teacher的model
要查询teachers表中的第10-20个Teacher
sql语句的话,就是查询从10开始的下10个数据
select * from teachers limit 10,10
在Teacher中写个named_scape如下
named_scope :from_size, lambda{ |from,size|
{:limit=>" #{from},#{size}"}
}
使用的时候
Teacher.fr ...
大部分网站的logo图标都放在根目录的 /favicon.ico
下面
例如google的 http://www.google.com.hk/favicon.ico
读取出来如下
百度的http://www.baidu.com/favicon.ico
读取出来如下
本来打算按照复制的顺序输出,但是结果出乎预料。查了一下,hash本身就是无序的
之后又看到了日本人的一篇帖子
http://gendosu.ddo.jp/redmine/wiki/1/Hash%E3%81%AE%E9%A0%86%E5%BA%8F%E3%82%92%E5%9B%BA%E5%AE%9A%E5%8C%96
ruby1.8 以下,Hash的顺序是不固定的
h = Hash.new
h[:c] = 'c'
h[:b] = 'b'
h[:a] = 'a'
h.each_key do |k|
p k
end
#=> :c
#=> :a
#=> ...
判断js变量是否被定义
- 博客分类:
- javascript
>>> typeof(type_hello) == "undefined";
true
FireFox是多页签的浏览器,写他的插件,难免要检测页签的开,关,选择等事件
这些操作在官网也有详细的说明地址如下:
https://developer.mozilla.org/en/Code_snippets/Tabbed_browser
里面涉及了一个比较特殊的操作(pinned or unpinned),以前没注意过。
查了一下,固定标签页的意思,下面有篇文章介绍的是chrome的pinned操作,虽然不是FF但是应该是一样的东西,可以看看
http://www.guao.hk/posts/make-google-chrome-open-with-permently-pinned-t ...
又要Helo,World了
来自官网的简单示例
英文文档地址:
https://developer.mozilla.org/en/Building_an_Extension
中文文档地址:https://developer.mozilla.org/cn/%E6%9E%84%E5%BB%BA%E4%B8%80%E4%B8%AA%E6%89%A9%E5%B1%95
虽然是hello world级别的,但是介绍很详细,就不再复制,粘贴了了
我是在Windows XP下弄得,有一些小的细节记录一下
1、访问FF的文件目录
Win+R快捷键,直接输入 "%APPDATA%\Mozilla\ ...
小小知识点,备忘
URI去解析下面这个地址的时候,会出错,需要转一下
>> URI::parse("http://www.baidu.com/s?word=你好")
URI::InvalidURIError: bad URI(is not URI?): http://www.baidu.com/s?word=你好
from /usr/local/bin/rubyee/lib/ruby/1.8/uri/common.rb:436:in `split'
from /usr/local/bin/rubyee/lib/ruby/1 ...