ybbao
非常火狐
非常火狐
  • UID27616
  • 注册日期2008-12-29
  • 最后登录2023-05-21
  • 发帖数721
  • 经验53枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
阅读:5857回复:23

书签、历史、地址栏、搜索栏在新标签页打开 脚本【4.0B4测试通过】

楼主#
更多 发布于:2010-08-14 13:39
感谢GOLF-AT修改

新代码在4楼!
云飞日月
小狐狸
小狐狸
  • UID11176
  • 注册日期2006-01-17
  • 最后登录2012-05-05
  • 发帖数40
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2010-08-14 13:39
b3的有效?偶是发现这种类型的脚本在4.0b2以后,都无效了,除了超级拖拽的脚本
ybbao
非常火狐
非常火狐
  • UID27616
  • 注册日期2008-12-29
  • 最后登录2023-05-21
  • 发帖数721
  • 经验53枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
2楼#
发布于:2010-08-14 13:39
昨天B4都正常,今天应该是小改了某些参数,致使失效
GOLF-AT
千年狐狸
千年狐狸
  • UID11611
  • 注册日期2006-02-20
  • 最后登录2019-12-30
  • 发帖数3239
  • 经验265枚
  • 威望1点
  • 贡献值260点
  • 好评度59点
  • 社区居民
  • 忠实会员
3楼#
发布于:2010-08-14 13:39
这2天的版本,如果 replace() 第一个参数为字符串且含括号,同时第二个参数含 $& 时,replace()就会有问题。replace() 的第一个参数,如果改用正则表达式,就没有问题。现在replace()的第一个参数改用正则表达式了。
(function() {
    /*open bookmark/history in new tab */
    try {
        eval("whereToOpenLink = " + whereToOpenLink.toString().replace(
            /var shift/,"Class=e.target.getAttribute('class'); Browser="
            +"getTopWin().document.getElementById('content'); if ((Bro"
            +"wser.currentURI.spec!='about:blank' || Browser.webProgre"
            +"ss.isLoadingDocument) && (Class=='sidebar-placesTreechil"
            +"dren' || Class.indexOf('bookmark-item')>=0)) return 'tab"
            +"'; $&"));
    }catch(e){}

    /*open url in new tab */
    try {
        var new_str = '_LoadURL(aTriggeringEvent, ';
        var old_str = /if \(aTriggeringEvent instanceof MouseEvent\) {/;
        try { // firefox 3.0.*
            eval("BrowserLoadURL = "+ BrowserLoadURL.toString().replace(
                old_str, new_str+' aPostData); return; $&'));
        }
        catch(e) { // firefox 3.1
            var urlbar = document.getElementById("urlbar");
            eval("urlbar.handleCommand="+ urlbar.handleCommand.toString(
                ).replace(old_str, new_str+' postData); return; $&'));
        }
    }catch(e){}

    /*open home in new tab */
    try {
        eval("BrowserGoHome = " + BrowserGoHome.toString().replace(
            /switch \(where\) {/, "where = (gBrowser.currentURI.spec!="
            +"'about:blank' || gBrowser.webProgress.isLoadingDocument"+
            ") ? 'tab' : 'current'; $&")); 
    }catch(e){}

    /*open search in new tab */
    try {
        var searchbar = document.getElementById("searchbar");
        eval("searchbar.handleSearchCommand="+searchbar.handleSearchCommand.
            toString().replace(/this.doSearch\(textValue, where\);/,
            "if (!gBrowser.webProgress.isLoadingDocument && gBrowser.curren"
            +"tURI.spec=='about:blank') where='current'; else where='tab'; "
            +"$&"));
    }catch(e){}

})();

function _LoadURL(aTriggeringEvent, aPostData)
{
    var where = (gBrowser.currentURI.spec!='about:blank' ||
        gBrowser.webProgress.isLoadingDocument) ? 'tab' :
        'current';
    if (gURLBar.value!='') openUILinkIn(gURLBar.value, where);
    return true;
}
ybbao
非常火狐
非常火狐
  • UID27616
  • 注册日期2008-12-29
  • 最后登录2023-05-21
  • 发帖数721
  • 经验53枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
4楼#
发布于:2010-08-14 13:39
小bug报告 :

剩下最后一个空白标签页,按主页按钮,不是在空白标签页打开,而是新建一个标签页来打开主页。希望能修正。
GOLF-AT
千年狐狸
千年狐狸
  • UID11611
  • 注册日期2006-02-20
  • 最后登录2019-12-30
  • 发帖数3239
  • 经验265枚
  • 威望1点
  • 贡献值260点
  • 好评度59点
  • 社区居民
  • 忠实会员
5楼#
发布于:2010-08-14 13:39
ybbao:小bug报告 :

剩下最后一个空白标签页,按主页按钮,不是在空白标签页打开,而是新建一个标签页来打开主页。希望能修正。
回到原帖

/*open home in new tab */
    /*open home in new tab */
    try {
        eval("BrowserGoHome = " + replace(BrowserGoHome.toString(), 
            "switch (where) {", "where = (gBrowser.currentURI.spec!="+
            "'about:blank' || gBrowser.webProgress.isLoadingDocument"+
            ") ? 'tab' : 'current'; $&")); 
    }catch(e){}
ybbao
非常火狐
非常火狐
  • UID27616
  • 注册日期2008-12-29
  • 最后登录2023-05-21
  • 发帖数721
  • 经验53枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
6楼#
发布于:2010-08-14 13:39
还有一个小bug,前进和后退功能失效了。
ybbao
非常火狐
非常火狐
  • UID27616
  • 注册日期2008-12-29
  • 最后登录2023-05-21
  • 发帖数721
  • 经验53枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
7楼#
发布于:2010-08-14 13:39
排除了代码,这一段出问题
/*open bookmark/history in new tab */
    try {
        eval("whereToOpenLink = " + replace(whereToOpenLink.toString(),
            "if (!e)", "Class=e.target.getAttribute('class'); Browser="
            +"getTopWin().document.getElementById('content'); if ((Bro"
            +"wser.currentURI.spec!='about:blank' || Browser.webProgre"
            +"ss.isLoadingDocument) && (Class=='sidebar-placesTreechil"
            +"dren' || Class.indexOf('bookmark-item')>=0)) return 'tab"
            +"'; $&"));
    }catch(e){}
GOLF-AT
千年狐狸
千年狐狸
  • UID11611
  • 注册日期2006-02-20
  • 最后登录2019-12-30
  • 发帖数3239
  • 经验265枚
  • 威望1点
  • 贡献值260点
  • 好评度59点
  • 社区居民
  • 忠实会员
8楼#
发布于:2010-08-14 13:39
我的电脑上,没有看到问题,前进后退正常。
ybbao
非常火狐
非常火狐
  • UID27616
  • 注册日期2008-12-29
  • 最后登录2023-05-21
  • 发帖数721
  • 经验53枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
9楼#
发布于:2010-08-14 13:39
再次确认

按界面上的:前进、后退 按钮----正常

用鼠标的后退键---失败(不能后退)

用鼠标手势FireGestures 默认:左往右扫(前进 R)、右往左扫(后退 L)---失败(不能后退、前进)

请大大再测试一次
GOLF-AT
千年狐狸
千年狐狸
  • UID11611
  • 注册日期2006-02-20
  • 最后登录2019-12-30
  • 发帖数3239
  • 经验265枚
  • 威望1点
  • 贡献值260点
  • 好评度59点
  • 社区居民
  • 忠实会员
10楼#
发布于:2010-08-14 13:39
4 楼的代码已经更正了,将 if (!e) 改成了 var shift
ybbao
非常火狐
非常火狐
  • UID27616
  • 注册日期2008-12-29
  • 最后登录2023-05-21
  • 发帖数721
  • 经验53枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
11楼#
发布于:2010-08-14 13:39
   

测试通过!
GOLF-AT
千年狐狸
千年狐狸
  • UID11611
  • 注册日期2006-02-20
  • 最后登录2019-12-30
  • 发帖数3239
  • 经验265枚
  • 威望1点
  • 贡献值260点
  • 好评度59点
  • 社区居民
  • 忠实会员
12楼#
发布于:2010-08-14 13:39
最新的代码,还是使用 javascript 的 replace() 函数,replace()的第一个参数改用正则表达式就可以了。
ybbao
非常火狐
非常火狐
  • UID27616
  • 注册日期2008-12-29
  • 最后登录2023-05-21
  • 发帖数721
  • 经验53枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
13楼#
发布于:2010-08-14 13:39
辛苦了。非常感谢!
teli
小狐狸
小狐狸
  • UID27453
  • 注册日期2008-12-15
  • 最后登录2011-10-27
  • 发帖数39
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
14楼#
发布于:2010-08-14 13:39
请问怎么使用
上一页
游客

返回顶部