浏览器添加左右键翻页

许多实用脚本和封装函数, 可以让您编写脚本更加便捷高效

Moderators: tmplinshi, arcticir

feiyue
Posts: 179
Joined: 08 Aug 2014, 04:08

浏览器添加左右键翻页

24 Jan 2019, 09:24

下面是我常用的浏览器添加左右键翻页的方法。

Code: Select all

SetTitleMatchMode, 2  ;//匹配部分标题

GroupAdd, MyBrowser, ahk_class IEFrame
GroupAdd, MyBrowser, 360安全浏览器
GroupAdd, MyBrowser, 360极速浏览器
GroupAdd, MyBrowser, 搜狗高速浏览器
GroupAdd, MyBrowser, 世界之窗浏览器
GroupAdd, MyBrowser, 2345加速浏览器
GroupAdd, MyBrowser, GreenBrowser
GroupAdd, MyBrowser, Firefox
GroupAdd, MyBrowser, Chrome

*$ScrollLock::Left_Right:=!Left_Right  ;//设置一个开关热键

#If WinActive("ahk_group MyBrowser") and (Left_Right)

$Right::  ;//下一页
$Left::   ;//上一页
js=
(LTrim Join
javascript:try {
  var Re=new RegExp("(下|后)(一|\s)*(页|頁|章|篇|翻)","i");
  var a=document.getElementsByTagName("A");
  for (var i=0;i<a.length;i++) {
    if (Re.test(a[i].innerHTML)) {
      if (a[i].href.substr(0,11).toLowerCase()=="javascript:") a[i].click(); else document.location.href=a[i].href; break;
  }}} catch (e){}
)
js:=InStr(A_ThisLabel,"Right") ? js : StrReplace(js,"下|后","上|前")
Send {Alt Down}d{Alt Up}
Sleep, 50
Clipboard:="." js  ;//某些浏览器的地址栏不能粘贴“javascript:”
SendInput {Ctrl Down}v{Ctrl Up}{Home}{Del}{Enter}
Sleep, 500
Return

#If
fwejifjjwk2
Posts: 29
Joined: 10 Aug 2019, 01:49

Re: 浏览器添加左右键翻页

11 Oct 2019, 08:27

我把第 15 行的 and (Left_Right) 註釋掉,然後更改 GroupAdd 那邊匹配的標題就可以用了。
這裡開關熱鍵是 scrolllock 鍵,但是我覺得這裡已經匹配標題了,不太需要這個開關,不過還是學習到了一個新的用法,感謝分享,非常的強大。
fwejifjjwk2
Posts: 29
Joined: 10 Aug 2019, 01:49

Re: 浏览器添加左右键翻页

11 Oct 2019, 08:37

@feiyue

在某個英文網站匹配 Next 無法換頁,有什麼辦法可以解決嗎?
Last edited by fwejifjjwk2 on 13 Oct 2019, 06:48, edited 1 time in total.
pigwei
Posts: 10
Joined: 13 Oct 2019, 02:36

Re: 浏览器添加左右键翻页

13 Oct 2019, 02:52

fwejifjjwk2 wrote:
11 Oct 2019, 08:27
我把第 15 行的 and (Left_Right) 註釋掉,然後更改 GroupAdd 那邊匹配的標題就可以用了。
這裡開關熱鍵是 scrolllock 鍵,但是我覺得這裡已經匹配標題了,不太需要這個開關,不過還是學習到了一個新的用法,感謝分享,非常的強大。
请教老师,可以把您修改好的代发分享一下吗,一直特别需要这么好用的代码,楼主的代码好像不能使用,我不会修改,万分感谢
pigwei
Posts: 10
Joined: 13 Oct 2019, 02:36

Re: 浏览器添加左右键翻页

13 Oct 2019, 02:54

请问老师可以分享下吗,特别喜欢这段代码,可惜一楼的好像不能使用,谢谢哦
pigwei
Posts: 10
Joined: 13 Oct 2019, 02:36

Re: 浏览器添加左右键翻页

13 Oct 2019, 02:56

@fwejifjjwk2
在吗 老师
fwejifjjwk2
Posts: 29
Joined: 10 Aug 2019, 01:49

Re: 浏览器添加左右键翻页

13 Oct 2019, 06:41

pigwei wrote:
13 Oct 2019, 02:54
请问老师可以分享下吗,特别喜欢这段代码,可惜一楼的好像不能使用,谢谢哦

Code: Select all

; 修改成自己需要使用這腳本的分頁有的標題,例如我用在 google 搜索頁面,用 windows spy 抓就行了
GroupAdd, MyBrowser, Google 搜尋 - Google Chrome
; 先註釋掉開關熱鍵,所以我們把 Left_right 也註釋掉。
; *$ScrollLock::Left_Right:=!Left_Right 
#If WinActive("ahk_group MyBrowser") ; and (Left_Right)
; 其它代碼完全一樣
pigwei
Posts: 10
Joined: 13 Oct 2019, 02:36

Re: 浏览器添加左右键翻页

13 Oct 2019, 21:31

我刚刚试了,还是不行,我可能不太懂代码,但是我会根据代码适当的修改,可以把老师自己正在使用的代码直接复制给我参考吗,谢谢呢
tmplinshi
Posts: 1549
Joined: 01 Oct 2013, 14:57

Re: 浏览器添加左右键翻页

14 Oct 2019, 02:50

不错,Chrome 浏览器测试可用。我稍微改了下:

Code: Select all

; https://www.autohotkey.com/boards/viewtopic.php?f=28&t=61347

F8::pageNav("pre") ; 上一页
F9::pageNav("next") ; 下一页

pageNav(cmd = "next") {
	colon := ":"   ; 论坛不允许 javascript 和 : 连在一起出现在帖子中,所以用变量替换。

	static js
	if (!js)
	{
		js =
		(LTrim Join`s
			function pageNav(cmd = "next") {
				var r = (cmd=="next") ? "(下|后)" : "(上|前)";
				var Re = new RegExp(r + "(一|\s)*(页|頁|章|篇|翻)", "i");
				var a = document.getElementsByTagName("A");
				for (var i=0; i<a.length; i++) {
					if (Re.test(a[i].innerHTML)) {
						if (a[i].href.substr(0,11).toLowerCase() == "javascript%colon%")
							a[i].click();
						else
							document.location.href = a[i].href;
						break;
					}
				}
			}
		)
	}
	
	clipBackup := ClipboardAll

	Send {Alt Down}d{Alt Up}
	Sleep, 50
	Clipboard := ".javascript" . colon . js . ";pageNav('" cmd "');"
	SendInput {Ctrl Down}v{Ctrl Up}{Home}{Del}{Enter}

	Sleep, 100
	Clipboard := clipBackup
}
pigwei
Posts: 10
Joined: 13 Oct 2019, 02:36

Re: 浏览器添加左右键翻页

14 Oct 2019, 22:44

@tmplinshi
@tmplinshi
我刚刚测试了一下,百度可以用,淘宝就不可以,麻烦老师看一下
tmplinshi
Posts: 1549
Joined: 01 Oct 2013, 14:57

Re: 浏览器添加左右键翻页

15 Oct 2019, 02:02

@pigwei

Code: Select all

; https://www.autohotkey.com/boards/viewtopic.php?f=28&t=61347

F8::pageNav("pre") ; 上一页
F9::pageNav("next") ; 下一页

pageNav(cmd = "next") {
	colon := ":"   ; 论坛不允许 javascript 和 : 连在一起出现在帖子中,所以用变量替换。

	static js
	if (!js)
	{
		js =
		(LTrim Join`s
			function pageNav(cmd = "next") {
				var r = (cmd=="next") ? "(下|后)" : "(上|前)";
				var Re = new RegExp(r + "(一|\s)*(页|頁|章|篇|翻)", "i");
				var a = document.getElementsByTagName("A");
				for (var i=0; i<a.length; i++) {
					if (Re.test(a[i].innerHTML)) {
						a[i].click();
						break;
					}
				}
			}
		)
	}
	
	clipBackup := ClipboardAll

	Send {Alt Down}d{Alt Up}
	Sleep, 50
	Clipboard := ".javascript" . colon . js . ";pageNav('" cmd "');"
	SendInput {Ctrl Down}v{Ctrl Up}{Home}{Del}{Enter}

	Sleep, 100
	Clipboard := clipBackup
}
pigwei
Posts: 10
Joined: 13 Oct 2019, 02:36

Re: 浏览器添加左右键翻页

15 Oct 2019, 04:57

刚刚测试了一下 淘宝 百度都无法使用的哦
tmplinshi
Posts: 1549
Joined: 01 Oct 2013, 14:57

Re: 浏览器添加左右键翻页

15 Oct 2019, 06:45

我测试 淘宝/百度 都可以,Chrome 浏览器。
pigwei
Posts: 10
Joined: 13 Oct 2019, 02:36

Re: 浏览器添加左右键翻页

15 Oct 2019, 08:51

我是360chrome,而且都是默认新链接打开网页的,所以就没用,因为这段代码不是真正模拟人点击下一页,而且生成一个链接,然后在地址栏打开的,我觉得这样不是很好
fwejifjjwk2
Posts: 29
Joined: 10 Aug 2019, 01:49

Re: 浏览器添加左右键翻页

24 Oct 2019, 04:58

@feiyue
這個腳本可以修改成模擬 IfWinExist 的功能,然後實現切換到有特定標題的網頁嗎?

Return to “脚本函数”

Who is online

Users browsing this forum: No registered users and 3 guests