FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
userscript/scripts/stopGoogleRedirectionMod@NLF.user.js at master · dumpmemory/userscript · GitHub
dumpmemory
userscript
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
userscript
/
scripts
/
stopGoogleRedirectionMod@NLF.user.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
95 lines (76 loc) · 2.62 KB
Breadcrumbs
userscript
/
scripts
/
stopGoogleRedirectionMod@NLF.user.js
Copy path
File metadata and controls
95 lines (76 loc) · 2.62 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// ==UserScript==
//
@name
stopGoogleRedirectionMod
//
@author
NLF
//
@description
禁止google的搜索结果重定向,加快访问速度,防止撞墙(support (opera,firefox(GreaseMonkey),chrome) Latest Stable,IE9+)
//
@version
1.0.0.5
//
@created
2013-12-26
//
@lastUpdated
2013-2-5
//
@grant
none
//
@run
-at document-start
//
@namespace
http://userscripts.org/users/NLF
//
@homepage
http://userscripts-mirror.org/scripts/show/186798
//
@include
https://www.google.*
// ==/UserScript==
;
(
function
(
)
{
'use strict'
;
// 将在真实环境下执行的实际函数。
function
contentScript
(
)
{
'use strict'
;
// 匹配应用本脚本的网页
if
(
!
/
^
h
t
t
p
s
?
:
\/
\/
w
w
w
\.
g
o
o
g
l
e
(?:
\.
[
A
-
z
]
{
2
,
3
}
)
{
1
,
2
}
\/
/
i
.
test
(
location
.
href
)
)
{
return
;
}
;
var
emptyFn
=
function
(
)
{
}
;
// 覆盖google处理重定向的函数
if
(
typeof
Object
.
defineProperty
==
'function'
)
{
Object
.
defineProperty
(
window
,
'rwt'
,
{
configurable
:
false
,
enumerable
:
true
,
get
:
function
(
)
{
return
emptyFn
;
}
,
}
)
;
}
else
if
(
typeof
window
.
__defineGetter__
==
'function'
)
{
window
.
__defineGetter__
(
'rwt'
,
function
(
)
{
return
emptyFn
;
}
)
;
}
;
}
;
// 如果发生通信的话,需要一个独一无二的ID
var
messageID
=
Math
.
random
(
)
.
toString
(
)
;
// 把指定函数丢到真实环境中执行,规避一切脚本管理器乱七八糟的执行环境产生的奇葩Bug,
// 特别是chrome上的那个坑爹tampermonkey。。。
function
runInPageContext
(
fn
)
{
if
(
typeof
fn
!==
'function'
)
{
return
;
}
;
// 创建一个脚本插入到pageContext执行
var
script
=
document
.
createElement
(
'script'
)
;
script
.
type
=
'text/javascript'
;
// 去掉函数名,防止污染全局环境。
var
sContent
=
';('
+
fn
.
toString
(
)
.
replace
(
/
[
^
(
]
+
/
,
'function '
)
+
')('
+
JSON
.
stringify
(
messageID
)
+
');'
;
// console.log('执行的脚本实际内容\n', sContent);
script
.
textContent
=
sContent
;
// 检测html元素是否可访问
// scriptish
@run
-at document-start时,html元素在第一时间不可访问
var
de
=
document
.
documentElement
;
if
(
de
)
{
de
.
appendChild
(
script
)
;
de
.
removeChild
(
script
)
;
}
else
{
new
(
window
.
MutationObserver
||
window
.
WebKitMutationObserver
)
(
function
(
ms
,
observer
)
{
var
de
=
document
.
documentElement
;
if
(
de
)
{
// console.log(de.outerHTML);
observer
.
disconnect
(
)
;
de
.
appendChild
(
script
)
;
de
.
removeChild
(
script
)
;
}
;
}
)
.
observe
(
document
,
{
childList
:
true
,
}
)
;
}
;
}
;
runInPageContext
(
contentScript
)
;
}
)
(
)
;
Back
|
FazBrowse Home
|
New Git URL