阅读:6543回复:23
书签、历史、地址栏、搜索栏在新标签页打开 脚本【4.0B4测试通过】
感谢GOLF-AT修改
新代码在4楼! |
|
1楼#
发布于:2010-08-14 13:39
b3的有效?偶是发现这种类型的脚本在4.0b2以后,都无效了,除了超级拖拽的脚本
|
|
2楼#
发布于:2010-08-14 13:39
昨天B4都正常,今天应该是小改了某些参数,致使失效
|
|
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; } |
|
4楼#
发布于:2010-08-14 13:39
小bug报告 :
剩下最后一个空白标签页,按主页按钮,不是在空白标签页打开,而是新建一个标签页来打开主页。希望能修正。 |
|
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){} |
|
6楼#
发布于:2010-08-14 13:39
还有一个小bug,前进和后退功能失效了。
|
|
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){} |
|
8楼#
发布于:2010-08-14 13:39
我的电脑上,没有看到问题,前进后退正常。
|
|
9楼#
发布于:2010-08-14 13:39
再次确认
按界面上的:前进、后退 按钮----正常 用鼠标的后退键---失败(不能后退) 用鼠标手势FireGestures 默认:左往右扫(前进 R)、右往左扫(后退 L)---失败(不能后退、前进) 请大大再测试一次 |
|
10楼#
发布于:2010-08-14 13:39
4 楼的代码已经更正了,将 if (!e) 改成了 var shift
|
|
11楼#
发布于:2010-08-14 13:39
![]() ![]() ![]() 测试通过! |
|
12楼#
发布于:2010-08-14 13:39
最新的代码,还是使用 javascript 的 replace() 函数,replace()的第一个参数改用正则表达式就可以了。
|
|
13楼#
发布于:2010-08-14 13:39
辛苦了。非常感谢!
|
|
14楼#
发布于:2010-08-14 13:39
请问怎么使用
|
|
上一页
下一页