- 主题:发一个Firefox插件
怎么讲……没看到是指?
【 在 zms (来福) 的大作中提到: 】
: 呀,好像没看到作用。。。
--
FROM 202.108.12.36
css清道夫
移植的话不是那么简单,因为涉及到结构以及命名冲突
【 在 sly9 (-_-b) 的大作中提到: 】
: 就是说,经常有需求说,“咱们的xx页面的什么什么不错,把它移植到yy页面上吧”,或者某些大型的页面,经过多人不同时期用不同风格编写后,可能已经数百k大小,重复的selector诸多等等,如果要整理这样的页面经常是非常烦人的。。
: 直接使用的意思就是,你可以把refined的版本直接替换掉原来的版本,一般就可以用了……
--
FROM 211.94.73.*
没看到你的dump的菜单
我也插过 firebox,也是在 html的页的dom的右键上加了个菜单
用的办法 好像不是简单的overlay一下搞定的
用了很多脚本。。。
【 在 sly9 (-_-b) 的大作中提到: 】
: 怎么讲……没看到是指?
--
修改:zms FROM 123.112.66.164
FROM 123.112.66.164
【 在 modico ().net() 的大作中提到: 】
: css清道夫
: 移植的话不是那么简单,因为涉及到结构以及命名冲突
的确不是那么简单。。但至少能找出来哪些部分用到了,然后自己再改改就好了。所以说,只是帮助你来做这个事儿,毕竟想做的那么智能还是太困难了。。
--
FROM 202.108.12.36
不是插overlay的丫。。
是用更dirty的方法写的。。
我的确不知道这儿该怎么写好了,毕竟原来firebug的这个菜单就是非常hardcoded的了,我也只好hard对hard了……=.=b
for (var i in Firebug.reps) {
if (Firebug.reps[i].className == "element") {
Firebug.reps[i].getContextMenuItems = function(elt, target, context){
var monitored = areEventsMonitored(elt, null, context);
return [{
label: "CopyHTML",
command: bindFixed(this.copyHTML, this, elt)
}, {
label: "CopyInnerHTML",
command: bindFixed(this.copyInnerHTML, this, elt)
}, {
label: "CopyXPath",
command: bindFixed(this.copyXPath, this, elt)
}, "-", {
label: "ShowEventsInConsole",
type: "checkbox",
checked: monitored,
command: bindFixed(toggleMonitorEvents, FBL, elt, null, monitored, context)
}, "-", {
label: "ScrollIntoView",
command: bindFixed(elt.scrollIntoView, elt)
}, {
label: "Dump CSS",
command: bindFixed(CSSDumpRefiner.dumpCSS, CSSDumpRefiner, elt)
}];
}
}
}
【 在 zms (来福) 的大作中提到: 】
: 没看到你的dump的菜单
: 我也插过 firebox,也是在 html的页的dom的右键上加了个菜单
: 用的办法 好像不是简单的overlay一下搞定的
: ...................
--
FROM 202.108.12.36
你的firebug版本?看看你的firebug插件目录下的reps.js
里头的
this.Element那一段的getContextMenuItems方法。。
大概是735行附近
【 在 zms (来福) 的大作中提到: 】
: 没看到你的dump的菜单
: 我也插过 firebox,也是在 html的页的dom的右键上加了个菜单
: 用的办法 好像不是简单的overlay一下搞定的
: ...................
--
FROM 202.108.12.36
我贴一下我以前做的,你参考一下
<?xml version="1.0"?>
<overlay id="buysou overlay5" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<hbox id="fbToolbarInner">
<toolbarbutton id="button51a" label="打入内部" onclick="test5a1(this)"/>
</hbox>
<script type="application/x-javascript">
<![CDATA[
var oldfunc,thes,thess;
function test5a1(src) {
if(!src.disabled) {
thess=document.getElementById("strings_firebug");
thes=thess.getString;
thess.getString=function(a) {
if("5a1"==a) {
return "测试XPATH";
}
return thes.apply(thess,[a]);
}
oldfunc=FirebugReps.Element.getContextMenuItems;
//alert(oldfunc);
FirebugReps.Element.getContextMenuItems=function(a,b,c) {
olds=oldfunc.apply(FirebugReps.Element,[a,b,c]);
len=olds.length;
olds[len]={label:"5a1",command:bindIt(test5a1a,a)};
return olds;
}
src.disabled=true;
}
}
function bindIt(a,b) {
return function() {return a(b);};
}
function test5a1a(src) {
xpathviewinside5a1a(src);
}
function xpathviewinside5a1a(tar) {
alert("haha");
}
]]>
</script>
</overlay>
作用是在firebox条上加了一个按钮,打入内部
点了以后,就多出一个菜单项
【 在 sly9 (-_-b) 的大作中提到: 】
: 不是插overlay的丫。。
: 是用更dirty的方法写的。。
: 我的确不知道这儿该怎么写好了,毕竟原来firebug的这个菜单就是非常hardcoded的了,我也只好hard对hard了……=.=b
: ...................
--
FROM 123.112.66.164
不错!这个办法好。。
【 在 zms (来福) 的大作中提到: 】
: 我贴一下我以前做的,你参考一下
: <?xml version="1.0"?>
: <overlay id="buysou overlay5" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
: ...................
--
FROM 202.108.12.36
1.2.0b3
getContextMenuItems: function(elt, target, context)
{
var monitored = areEventsMonitored(elt, null, context);
return [
{label: "CopyHTML", command: bindFixed(this.copyHTML, this, elt) },
{label: "CopyInnerHTML", command: bindFixed(this.copyInnerHTML, this, elt) },
{label: "CopyXPath", command: bindFixed(this.copyXPath, this, elt) },
"-",
{label: "ShowEventsInConsole", type: "checkbox", checked: monitored,
command: bindFixed(toggleMonitorEvents, FBL, elt, null, monitored, context) },
"-",
{label: "ScrollIntoView", command: bindFixed(elt.scrollIntoView, elt) }
];
}
});
从第714行开始
【 在 sly9 (-_-b) 的大作中提到: 】
: 你的firebug版本?看看你的firebug插件目录下的reps.js
: 里头的
: this.Element那一段的getContextMenuItems方法。。
: ...................
--
FROM 123.112.66.164
嗯,纯代码操作,纯hack js函数
动态插入,呵呵
【 在 sly9 (-_-b) 的大作中提到: 】
: 不错!这个办法好。。
--
FROM 123.112.66.164