Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
YOHOBUYPC
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
2
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
whb
9 years ago
Commit
cc3999553a8ebf42b8d1d9d09527b0fc2fb6cc7e
1 parent
397adbd0
respond
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
230 additions
and
0 deletions
web-static/dist/yohobuy/respond/respond-proxy.html
web-static/dist/yohobuy/respond/respond.min.js
web-static/dist/yohobuy/respond/respond.proxy.gif
web-static/dist/yohobuy/respond/respond.proxy.js
web-static/dist/yohobuy/respond/respond-proxy.html
0 → 100644
View file @
cc39995
<!-- Respond.js: min/max-width media query polyfill. Remote proxy (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs -->
<!DOCTYPE html>
<html>
<head>
<meta
charset=
"utf-8"
/>
<title>
Respond JS Proxy
</title>
</head>
<body>
<script>
(
function
()
{
var
domain
,
css
,
query
,
getQueryString
,
ajax
,
xmlHttp
;
/*
http://stackoverflow.com/questions/4963673/get-url-array-variables-in-javascript-jquery/4963817#4963817
*/
getQueryString
=
function
()
{
var
ret
=
{},
parts
,
i
,
p
;
parts
=
(
document
.
location
.
toString
().
split
(
"?"
)[
1
]).
split
(
"&"
);
for
(
i
=
0
;
i
<
parts
.
length
;
i
++
)
{
p
=
parts
[
i
].
split
(
"="
);
// so strings will be correctly parsed:
p
[
1
]
=
decodeURIComponent
(
p
[
1
].
replace
(
/
\+
/g
,
" "
));
if
(
p
[
0
].
search
(
/
\[\]
/
)
>=
0
)
{
// then it"s an array
p
[
0
]
=
p
[
0
].
replace
(
"[]"
,
""
);
if
(
typeof
ret
[
p
[
0
]]
!=
"object"
)
{
ret
[
p
[
0
]]
=
[];
}
ret
[
p
[
0
]].
push
(
p
[
1
]);
}
else
{
ret
[
p
[
0
]]
=
p
[
1
];
}
}
return
ret
;
};
ajax
=
function
(
url
,
callback
)
{
var
req
=
xmlHttp
();
if
(
!
req
){
return
;
}
req
.
open
(
"GET"
,
url
,
true
);
req
.
onreadystatechange
=
function
()
{
if
(
req
.
readyState
!=
4
||
req
.
status
!=
200
&&
req
.
status
!=
304
){
return
;
}
callback
(
req
.
responseText
);
};
if
(
req
.
readyState
==
4
){
return
;
}
req
.
send
();
};
//define ajax obj
xmlHttp
=
(
function
()
{
var
xmlhttpmethod
=
false
,
attempts
=
[
function
(){
return
new
XMLHttpRequest
();
},
function
(){
return
new
ActiveXObject
(
"Microsoft.XMLHTTP"
);
},
function
(){
return
new
ActiveXObject
(
"MSXML2.XMLHTTP.3.0"
);
}
],
al
=
attempts
.
length
;
while
(
al
--
){
try
{
xmlhttpmethod
=
attempts
[
al
]();
}
catch
(
e
)
{
continue
;
}
break
;
}
return
function
(){
return
xmlhttpmethod
;
};
})();
query
=
getQueryString
();
css
=
query
[
"css"
];
domain
=
query
[
"url"
];
if
(
css
&&
domain
)
{
ajax
(
css
,
function
(
response
)
{
window
.
name
=
response
;
window
.
location
.
href
=
domain
;
});
}
}());
</script>
</body>
</html>
\ No newline at end of file
...
...
web-static/dist/yohobuy/respond/respond.min.js
0 → 100644
View file @
cc39995
/*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl
* Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT
* */
!
function
(
a
){
"use strict"
;
a
.
matchMedia
=
a
.
matchMedia
||
function
(
a
){
var
b
,
c
=
a
.
documentElement
,
d
=
c
.
firstElementChild
||
c
.
firstChild
,
e
=
a
.
createElement
(
"body"
),
f
=
a
.
createElement
(
"div"
);
return
f
.
id
=
"mq-test-1"
,
f
.
style
.
cssText
=
"position:absolute;top:-100em"
,
e
.
style
.
background
=
"none"
,
e
.
appendChild
(
f
),
function
(
a
){
return
f
.
innerHTML
=
'­<style media="'
+
a
+
'"> #mq-test-1 { width: 42px; }</style>'
,
c
.
insertBefore
(
e
,
d
),
b
=
42
===
f
.
offsetWidth
,
c
.
removeChild
(
e
),{
matches
:
b
,
media
:
a
}}}(
a
.
document
)}(
this
),
function
(
a
){
"use strict"
;
function
b
(){
u
(
!
0
)}
var
c
=
{};
a
.
respond
=
c
,
c
.
update
=
function
(){};
var
d
=
[],
e
=
function
(){
var
b
=!
1
;
try
{
b
=
new
a
.
XMLHttpRequest
}
catch
(
c
){
b
=
new
a
.
ActiveXObject
(
"Microsoft.XMLHTTP"
)}
return
function
(){
return
b
}}(),
f
=
function
(
a
,
b
){
var
c
=
e
();
c
&&
(
c
.
open
(
"GET"
,
a
,
!
0
),
c
.
onreadystatechange
=
function
(){
4
!==
c
.
readyState
||
200
!==
c
.
status
&&
304
!==
c
.
status
||
b
(
c
.
responseText
)},
4
!==
c
.
readyState
&&
c
.
send
(
null
))};
if
(
c
.
ajax
=
f
,
c
.
queue
=
d
,
c
.
regex
=
{
media
:
/@media
[^\{]
+
\{([^\{\}]
*
\{[^\}\{]
*
\})
+/gi
,
keyframes
:
/@
(?:\-(?:
o|moz|webkit
)\-)?
keyframes
[^\{]
+
\{(?:[^\{\}]
*
\{[^\}\{]
*
\})
+
[^\}]
*
\}
/gi
,
urls
:
/
(
url
\()[
'"
]?([^\/\)
'"
][^
:
\)
'"
]
+
)[
'"
]?(\))
/g
,
findStyles
:
/@media *
([^\{]
+
)\{([\S\s]
+
?)
$/
,
only
:
/
(
only
\s
+
)?([
a-zA-Z
]
+
)\s?
/
,
minw
:
/
\([\s]
*min
\-
width
\s
*:
[\s]
*
([\s]
*
[
0-9
\.]
+
)(
px|em
)[\s]
*
\)
/
,
maxw
:
/
\([\s]
*max
\-
width
\s
*:
[\s]
*
([\s]
*
[
0-9
\.]
+
)(
px|em
)[\s]
*
\)
/
},
c
.
mediaQueriesSupported
=
a
.
matchMedia
&&
null
!==
a
.
matchMedia
(
"only all"
)
&&
a
.
matchMedia
(
"only all"
).
matches
,
!
c
.
mediaQueriesSupported
){
var
g
,
h
,
i
,
j
=
a
.
document
,
k
=
j
.
documentElement
,
l
=
[],
m
=
[],
n
=
[],
o
=
{},
p
=
30
,
q
=
j
.
getElementsByTagName
(
"head"
)[
0
]
||
k
,
r
=
j
.
getElementsByTagName
(
"base"
)[
0
],
s
=
q
.
getElementsByTagName
(
"link"
),
t
=
function
(){
var
a
,
b
=
j
.
createElement
(
"div"
),
c
=
j
.
body
,
d
=
k
.
style
.
fontSize
,
e
=
c
&&
c
.
style
.
fontSize
,
f
=!
1
;
return
b
.
style
.
cssText
=
"position:absolute;font-size:1em;width:1em"
,
c
||
(
c
=
f
=
j
.
createElement
(
"body"
),
c
.
style
.
background
=
"none"
),
k
.
style
.
fontSize
=
"100%"
,
c
.
style
.
fontSize
=
"100%"
,
c
.
appendChild
(
b
),
f
&&
k
.
insertBefore
(
c
,
k
.
firstChild
),
a
=
b
.
offsetWidth
,
f
?
k
.
removeChild
(
c
):
c
.
removeChild
(
b
),
k
.
style
.
fontSize
=
d
,
e
&&
(
c
.
style
.
fontSize
=
e
),
a
=
i
=
parseFloat
(
a
)},
u
=
function
(
b
){
var
c
=
"clientWidth"
,
d
=
k
[
c
],
e
=
"CSS1Compat"
===
j
.
compatMode
&&
d
||
j
.
body
[
c
]
||
d
,
f
=
{},
o
=
s
[
s
.
length
-
1
],
r
=
(
new
Date
).
getTime
();
if
(
b
&&
g
&&
p
>
r
-
g
)
return
a
.
clearTimeout
(
h
),
h
=
a
.
setTimeout
(
u
,
p
),
void
0
;
g
=
r
;
for
(
var
v
in
l
)
if
(
l
.
hasOwnProperty
(
v
)){
var
w
=
l
[
v
],
x
=
w
.
minw
,
y
=
w
.
maxw
,
z
=
null
===
x
,
A
=
null
===
y
,
B
=
"em"
;
x
&&
(
x
=
parseFloat
(
x
)
*
(
x
.
indexOf
(
B
)
>-
1
?
i
||
t
():
1
)),
y
&&
(
y
=
parseFloat
(
y
)
*
(
y
.
indexOf
(
B
)
>-
1
?
i
||
t
():
1
)),
w
.
hasquery
&&
(
z
&&
A
||!
(
z
||
e
>=
x
)
||!
(
A
||
y
>=
e
))
||
(
f
[
w
.
media
]
||
(
f
[
w
.
media
]
=
[]),
f
[
w
.
media
].
push
(
m
[
w
.
rules
]))}
for
(
var
C
in
n
)
n
.
hasOwnProperty
(
C
)
&&
n
[
C
]
&&
n
[
C
].
parentNode
===
q
&&
q
.
removeChild
(
n
[
C
]);
n
.
length
=
0
;
for
(
var
D
in
f
)
if
(
f
.
hasOwnProperty
(
D
)){
var
E
=
j
.
createElement
(
"style"
),
F
=
f
[
D
].
join
(
"\n"
);
E
.
type
=
"text/css"
,
E
.
media
=
D
,
q
.
insertBefore
(
E
,
o
.
nextSibling
),
E
.
styleSheet
?
E
.
styleSheet
.
cssText
=
F
:
E
.
appendChild
(
j
.
createTextNode
(
F
)),
n
.
push
(
E
)}},
v
=
function
(
a
,
b
,
d
){
var
e
=
a
.
replace
(
c
.
regex
.
keyframes
,
""
).
match
(
c
.
regex
.
media
),
f
=
e
&&
e
.
length
||
0
;
b
=
b
.
substring
(
0
,
b
.
lastIndexOf
(
"/"
));
var
g
=
function
(
a
){
return
a
.
replace
(
c
.
regex
.
urls
,
"$1"
+
b
+
"$2$3"
)},
h
=!
f
&&
d
;
b
.
length
&&
(
b
+=
"/"
),
h
&&
(
f
=
1
);
for
(
var
i
=
0
;
f
>
i
;
i
++
){
var
j
,
k
,
n
,
o
;
h
?(
j
=
d
,
m
.
push
(
g
(
a
))):(
j
=
e
[
i
].
match
(
c
.
regex
.
findStyles
)
&&
RegExp
.
$1
,
m
.
push
(
RegExp
.
$2
&&
g
(
RegExp
.
$2
))),
n
=
j
.
split
(
","
),
o
=
n
.
length
;
for
(
var
p
=
0
;
o
>
p
;
p
++
)
k
=
n
[
p
],
l
.
push
({
media
:
k
.
split
(
"("
)[
0
].
match
(
c
.
regex
.
only
)
&&
RegExp
.
$2
||
"all"
,
rules
:
m
.
length
-
1
,
hasquery
:
k
.
indexOf
(
"("
)
>-
1
,
minw
:
k
.
match
(
c
.
regex
.
minw
)
&&
parseFloat
(
RegExp
.
$1
)
+
(
RegExp
.
$2
||
""
),
maxw
:
k
.
match
(
c
.
regex
.
maxw
)
&&
parseFloat
(
RegExp
.
$1
)
+
(
RegExp
.
$2
||
""
)})}
u
()},
w
=
function
(){
if
(
d
.
length
){
var
b
=
d
.
shift
();
f
(
b
.
href
,
function
(
c
){
v
(
c
,
b
.
href
,
b
.
media
),
o
[
b
.
href
]
=!
0
,
a
.
setTimeout
(
function
(){
w
()},
0
)})}},
x
=
function
(){
for
(
var
b
=
0
;
b
<
s
.
length
;
b
++
){
var
c
=
s
[
b
],
e
=
c
.
href
,
f
=
c
.
media
,
g
=
c
.
rel
&&
"stylesheet"
===
c
.
rel
.
toLowerCase
();
e
&&
g
&&!
o
[
e
]
&&
(
c
.
styleSheet
&&
c
.
styleSheet
.
rawCssText
?(
v
(
c
.
styleSheet
.
rawCssText
,
e
,
f
),
o
[
e
]
=!
0
):(
!
/^
([
a-zA-Z:
]
*
\/\/)
/
.
test
(
e
)
&&!
r
||
e
.
replace
(
RegExp
.
$1
,
""
).
split
(
"/"
)[
0
]
===
a
.
location
.
host
)
&&
(
"//"
===
e
.
substring
(
0
,
2
)
&&
(
e
=
a
.
location
.
protocol
+
e
),
d
.
push
({
href
:
e
,
media
:
f
})))}
w
()};
x
(),
c
.
update
=
x
,
c
.
getEmValue
=
t
,
a
.
addEventListener
?
a
.
addEventListener
(
"resize"
,
b
,
!
1
):
a
.
attachEvent
&&
a
.
attachEvent
(
"onresize"
,
b
)}}(
this
);
\ No newline at end of file
...
...
web-static/dist/yohobuy/respond/respond.proxy.gif
0 → 100644
View file @
cc39995
35 Bytes
web-static/dist/yohobuy/respond/respond.proxy.js
0 → 100644
View file @
cc39995
/*! Respond.js: min/max-width media query polyfill. Remote proxy (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
(
function
(
win
,
doc
,
undefined
){
var
docElem
=
doc
.
documentElement
,
proxyURL
=
doc
.
getElementById
(
"respond-proxy"
).
href
,
redirectURL
=
(
doc
.
getElementById
(
"respond-redirect"
)
||
location
).
href
,
baseElem
=
doc
.
getElementsByTagName
(
"base"
)[
0
],
urls
=
[],
refNode
;
function
encode
(
url
){
return
win
.
encodeURIComponent
(
url
);
}
function
fakejax
(
url
,
callback
){
var
iframe
,
AXO
;
// All hail Google http://j.mp/iKMI19
// Behold, an iframe proxy without annoying clicky noises.
if
(
"ActiveXObject"
in
win
)
{
AXO
=
new
ActiveXObject
(
"htmlfile"
);
AXO
.
open
();
AXO
.
write
(
'<iframe id="x"></iframe>'
);
AXO
.
close
();
iframe
=
AXO
.
getElementById
(
"x"
);
}
else
{
iframe
=
doc
.
createElement
(
"iframe"
);
iframe
.
style
.
cssText
=
"position:absolute;top:-99em"
;
docElem
.
insertBefore
(
iframe
,
docElem
.
firstElementChild
||
docElem
.
firstChild
);
}
iframe
.
src
=
checkBaseURL
(
proxyURL
)
+
"?url="
+
encode
(
redirectURL
)
+
"&css="
+
encode
(
checkBaseURL
(
url
));
function
checkFrameName
()
{
var
cssText
;
try
{
cssText
=
iframe
.
contentWindow
.
name
;
}
catch
(
e
)
{
}
if
(
cssText
)
{
// We've got what we need. Stop the iframe from loading further content.
iframe
.
src
=
"about:blank"
;
iframe
.
parentNode
.
removeChild
(
iframe
);
iframe
=
null
;
// Per http://j.mp/kn9EPh, not taking any chances. Flushing the ActiveXObject
if
(
AXO
)
{
AXO
=
null
;
if
(
win
.
CollectGarbage
)
{
win
.
CollectGarbage
();
}
}
callback
(
cssText
);
}
else
{
win
.
setTimeout
(
checkFrameName
,
100
);
}
}
win
.
setTimeout
(
checkFrameName
,
500
);
}
// http://stackoverflow.com/a/472729
function
checkBaseURL
(
href
)
{
var
el
=
document
.
createElement
(
'div'
),
escapedURL
=
href
.
split
(
'&'
).
join
(
'&'
).
split
(
'<'
).
join
(
'<'
).
split
(
'"'
).
join
(
'"'
);
el
.
innerHTML
=
'<a href="'
+
escapedURL
+
'">x</a>'
;
return
el
.
firstChild
.
href
;
}
function
checkRedirectURL
()
{
// IE6 & IE7 don't build out absolute urls in <link /> attributes.
// So respond.proxy.gif remains relative instead of http://example.com/respond.proxy.gif.
// This trickery resolves that issue.
if
(
~
!
redirectURL
.
indexOf
(
location
.
host
))
{
var
fakeLink
=
doc
.
createElement
(
"div"
);
fakeLink
.
innerHTML
=
'<a href="'
+
redirectURL
+
'"></a>'
;
docElem
.
insertBefore
(
fakeLink
,
docElem
.
firstElementChild
||
docElem
.
firstChild
);
// Grab the parsed URL from that dummy object
redirectURL
=
fakeLink
.
firstChild
.
href
;
// Clean up
fakeLink
.
parentNode
.
removeChild
(
fakeLink
);
fakeLink
=
null
;
}
}
function
buildUrls
(){
var
links
=
doc
.
getElementsByTagName
(
"link"
);
for
(
var
i
=
0
,
linkl
=
links
.
length
;
i
<
linkl
;
i
++
){
var
thislink
=
links
[
i
],
href
=
links
[
i
].
href
,
extreg
=
(
/^
([
a-zA-Z:
]
*
\/\/(
www
\.)?)
/
).
test
(
href
),
ext
=
(
baseElem
&&
!
extreg
)
||
extreg
;
//make sure it's an external stylesheet
if
(
thislink
.
rel
.
indexOf
(
"stylesheet"
)
>=
0
&&
ext
){
(
function
(
link
){
fakejax
(
href
,
function
(
css
){
link
.
styleSheet
.
rawCssText
=
css
;
respond
.
update
();
}
);
})(
thislink
);
}
}
}
if
(
!
respond
.
mediaQueriesSupported
){
checkRedirectURL
();
buildUrls
();
}
})(
window
,
document
);
...
...
Please
register
or
login
to post a comment