有没有什么方法可以在Edge地址栏输入的网址直接在新标签页打开?

常见的国产浏览器基本上都支持的两个功能,一个是双击标签关闭,一个是地址栏打开新标签,我以前不愿意转到edge主要就是这两个问题
现在看了下,最新版的edge已经支持双击标签关闭了,但地址栏新标签这个仍然没有解决,而且也没有查到有插件之类的方式可以解决,chrome还可以用chrome++来实现,edge好像也不行,大家有好的解决办法吗?

没有使用过 Edge ,但是在 Firefox 和 Chrome 中,直接按 Alt-Enter 就是在新标签页打开链接了,你可以试一下

1 个赞

edge默认是用shift+enter,但我希望能够直接enter就在新标签栏打开,或者至少给我一个可以选择的选项

这样呀,那我就不清楚了,我好像都是使用默认的快捷键,从没改动的想法 :joy:

1 个赞

Edge那么多快捷键不用吗?
Win + W键关闭当前标签页
Win + T键新建标签页
Win + R键刷新当前标签页
Ctrl + Shift + S键来可以截整个网页的屏

具体参考 Microsoft Edge 中的键盘快捷方式 - Microsoft 支持

1 个赞

Edge Alt+Enter 是新标签页打开,Shift+Enter 是新窗口打开。

但是想做到 Enter 默认新标签页打开那就知识盲区了。

就是因为不想改变使用习惯啊

我觉得可以用这个autohotkey脚本进行一定的修改来实现:

考虑到一般而言,在浏览器里按下{enter}键,基本上都是在编辑框中。
因此,只需要在按下{enter}时,获取当前 “编辑光标” 的坐标位置,进行判定,
如果编辑光标的位置处于地址栏处,则拦截{enter}改为发送Alt+Enter,否则还是发送{enter}

#Persistent
SetTimer,GetC,200
Return

GetC:
   if !GetCaretPos(x, y)
      ToolTip, Cant recognize caret position
   else {
      CoordMode, Mouse
      tooltip,% x " " y
   }
   Return

GetCaretPos(ByRef x, ByRef y) {
   static OBJID_CARET := 0xFFFFFFF8
   CoordMode, Caret
   if (A_CaretX != "" && A_CaretY != "")
      x := A_CaretX, y := A_CaretY
   else {
      AccObject := AccObjectFromWindow(WinExist("A"), OBJID_CARET)
      Pos := AccLocation(AccObject)
      x := Pos.x, y := Pos.y
   }
   Return x && y
}

AccObjectFromWindow(hWnd, idObject = 0) {
   static IID_IDispatch   := "{00020400-0000-0000-C000-000000000046}"
        , IID_IAccessible := "{618736E0-3C3D-11CF-810C-00AA00389B71}"
        , OBJID_NATIVEOM  := 0xFFFFFFF0, VT_DISPATCH := 9, F_OWNVALUE := 1
        , h := DllCall("LoadLibrary", "Str", "oleacc", "Ptr")
        
   VarSetCapacity(IID, 16), idObject &= 0xFFFFFFFF, AccObject := 0
   DllCall("ole32\CLSIDFromString", "Str", idObject = OBJID_NATIVEOM ? IID_IDispatch : IID_IAccessible, "Ptr", &IID)
   if DllCall("oleacc\AccessibleObjectFromWindow", "Ptr", hWnd, "UInt", idObject, "Ptr", &IID, "PtrP", pAcc) = 0
      AccObject := ComObject(VT_DISPATCH, pAcc, F_OWNVALUE)
   Return AccObject
}

AccLocation(Acc, ChildId := 0, ByRef Position := "") {
   static type := (VT_BYREF := 0x4000) | (VT_I4 := 3)
   try Acc.accLocation( ComObject(type, &x := 0), ComObject(type, &y := 0)
                      , ComObject(type, &w := 0), ComObject(type, &h := 0), ChildId )
   catch
      Return
   _x := NumGet(x, "int"), _y := NumGet(y, "int"), _w = NumGet(w, "int"), _h := NumGet(h, "int")
   Position := "x" . _x . " y" . _y . " w" . _w . " h" . _h
   Return {x: _x, y: _y, w: _w, h: _h}
}

我非得用 Edoge 的时候,就记住新建了标签页再在地址栏输入,要么鼠标点,要么 Ctrl - T 再 Alt - D ……
反正既然 Edge 不给我选择,我也不选择 Edge 。
——
说句暴论,我觉得“地址栏输入后要组合键而不是一键在新标签页打开”这种强制设计,就是PUA使用者,“要么给我多花点时间按快捷键,要么忘掉刚刚的页面,这样我就不用费心思去优化内存占用,还可以把那不知好歹的Firefox羞辱一通!”

搞定!运行exe或ahk即可。

下载地址:

dogbean.ysepan.com

Snipper - Snipaste_2024-06-26_11-00-06

autohotkey代码:

#Persistent

; Define global variables
state := 0

; Set a timer to call the getstate function every 100ms
SetTimer, getstate, 100
return

#If state
$enter::
	Send !{enter}
return
#if

getstate:
	if WinActive("ahk_exe msedge.exe")
	{
		if !GetCaretPos(x, y, w, h)
			state:=0
		else {
			WinGetPos,,yy
		  y:=y-yy
			y:=y*(96/A_ScreenDPI)
			if (y < 72)
			state:=1
		}
	}else{
		state:=0
	}
	;ToolTip,% state " " x " " y " " w " " h
return

GetCaretPos(ByRef x, ByRef y, ByRef w, ByRef h) {
	static OBJID_CARET := 0xFFFFFFF8
	CoordMode, Caret
	if (A_CaretX != "" && A_CaretY != "")
		x := A_CaretX, y := A_CaretY
	else {
		AccObject := AccObjectFromWindow(WinExist("A"), OBJID_CARET)
		Pos := AccLocation(AccObject)
		x := Pos.x, y := Pos.y, w := Pos.w ,h:=pos.h
	}
	return x && y && w && h
}

AccObjectFromWindow(hWnd, idObject = 0) {
	static IID_IDispatch   := "{00020400-0000-0000-C000-000000000046}"
		, IID_IAccessible := "{618736E0-3C3D-11CF-810C-00AA00389B71}"
		, OBJID_NATIVEOM  := 0xFFFFFFF0, VT_DISPATCH := 9, F_OWNVALUE := 1
		, h := DllCall("LoadLibrary", "Str", "oleacc", "Ptr")

	VarSetCapacity(IID, 16), idObject &= 0xFFFFFFFF, AccObject := 0
	DllCall("ole32\CLSIDFromString", "Str", idObject = OBJID_NATIVEOM ? IID_IDispatch : IID_IAccessible, "Ptr", &IID)
	if DllCall("oleacc\AccessibleObjectFromWindow", "Ptr", hWnd, "UInt", idObject, "Ptr", &IID, "PtrP", pAcc) = 0
		AccObject := ComObject(VT_DISPATCH, pAcc, F_OWNVALUE)
	return AccObject
}

AccLocation(Acc, ChildId := 0, ByRef Position := "") {
	static type := (VT_BYREF := 0x4000) | (VT_I4 := 3)
	try Acc.AccLocation( ComObject(type, &x := 0), ComObject(type, &y := 0)
		, ComObject(type, &w := 0), ComObject(type, &h := 0), ChildId )
	catch
		return
	_x := NumGet(x, "int"), _y := NumGet(y, "int"), _w = NumGet(w, "int"), _h := NumGet(h, "int")
	Position := "x" . _x . " y" . _y . " w" . _w . " h" . _h
	return {x: _x, y: _y, w: _w, h: _h}
}
1 个赞

你试试,好用的话,记得点个解决方案哈~

感谢,我尝试一下

1 个赞
  • 采用转发中键关闭标签方式,效率更高,保留基本功能,去除冗余功能
  • 小键盘回车采用第二搜索引擎(在地址栏中输入关键词,如果直接按小键盘上面的回车键,将采用第二搜索引擎进行搜索,该搜索引擎可以在配置文件中自定义)
  • 地址栏全角字符自动转换功能::转换成: 、转换成/
  • 修复垂直标签状态下面当有固定标签时,右击关闭标签功能失效的bug
  • 右键标题栏打开新标签
  • 地址栏回车新开tab打开网页
  • 右键关闭标签页
  • 按住右键时滚轮滚动标签栏
  • 同时支持Edge(版本 128.0.2739.42 (正式版本) (64 位))、Chrome(版本 128.0.6613.114(正式版本) (64 位))

RunningCheese Edge 131.0 稳定版 - 奔跑中的奶酪

定制版 Chrome 浏览器默认使用 GreenChrome增强插件,所以书签和链接的默认打开方式修改成了在新标签页 打开。但这有副作用,这导致无法使用书签栏里的“小书签”,需要取消勾选“处理弹出菜单”。

这个似乎不行,它只解决了“书签和链接”,而不是地址栏

兄弟,你这个才是完美解决方案,真心赞美你